차근차근/JAVA Script

[팁] 각종 문자열 체크 자바스크립트 함수

예쁜꽃이피었으면 2014. 7. 29. 00:37

 

 

http://apps.kiplayer.gethompy.com/bbs/board.php?bo_table=comm_deve&wr_id=11&page=0&sca=&sfl=&stx=&spt=0&page=0&cwin=#c_45

 

 

// 문자의 좌, 우 공백 제거
function trim(v) {  
return v.replace(/(^\s*)|(\s*$)/g, "");
}

// 문자의 좌 공백 제거
function ltrim(v) {
    return v.replace(/(^\s*)/, "");
}

// 문자의 우 공백 제거
function rtrim(v) {
    return v.replace(/(\s*$)/, "");    
}

// 문자열의 byte 길이 반환
function byte(v) {
    var cnt = 0;
    for (var i = 0; i < v.length; i++) {
        if (v.charCodeAt(i) > 127)
           cnt += 2;
        else
           cnt++;
    }
    return cnt;
}

// 정수형으로 변환
function int(v) {
   if(!isNaN(v)) {
       return parseInt(v);
   }else{
       return null;    
   }
}

// 숫자만 가져 오기
function num(v) {
   return (v.trim().replace(/[^0-9]/g, ""));
}
 
---------------------------------------------------------
// 공백이나 널인지 확인
// @return : boolean
String.prototype.isBlank = function() {
    var str = this.trim();
    for(var i = 0; i < str.length; i++) {
        if ((str.charAt(i) != "\t") && (str.charAt(i) != "\n") && (str.charAt(i)!="\r")) {
            return false;
        }
    }
    return true;
}

// 숫자로 구성되어 있는지 학인
// arguments[0] : 허용할 문자셋
// @return : boolean
String.prototype.isNum = function() {
    return (/^[0-9]+$/).test(this.remove(arguments[0])) ? true : false;
}

// 영어만 허용 - arguments[0] : 추가 허용할 문자들
// @return : boolean
String.prototype.isEng = function() {
    return (/^[a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

// 숫자와 영어만 허용 - arguments[0] : 추가 허용할 문자들
// @return : boolean
String.prototype.isEngNum = function() {
    return (/^[0-9a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

// 아이디 체크 영어와 숫자만 체크 첫글자는 영어로 시작 - arguments[0] : 추가 허용할 문자들
// @return : boolean
String.prototype.isUserid = function() {
    return (/^[a-zA-z]{1}[0-9a-zA-Z]+$/).test(this.remove(arguments[0])) ? true : false;
}

// 한글 체크 - arguments[0] : 추가 허용할 문자들
// @return : boolean
String.prototype.isKor = function() {
    return (/^[가-힣]+$/).test(this.remove(arguments[0])) ? true : false;
}

// 이메일의 유효성을 체크
// @return : boolean
String.prototype.isEmail = function() {
    return (/\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-zA-Z]{2,4}$/).test(this.trim());
}

// 전화번호 체크 - arguments[0] : 전화번호 구분자
// @return : boolean
String.prototype.isPhone = function() {
    var arg = arguments[0] ? arguments[0] : "";
    return eval("(/(02|0[3-9]{1}[0-9]{1})" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}

// 핸드폰번호 체크 - arguments[0] : 핸드폰 구분자
// @return : boolean
String.prototype.isMobile = function() {
    var arg = arguments[0] ? arguments[0] : "";
    return eval("(/01[016789]" + arg + "[1-9]{1}[0-9]{2,3}" + arg + "[0-9]{4}$/).test(this)");
}

// 주민번호 체크 - arguments[0] : 주민번호 구분자
// XXXXXX-XXXXXXX
// @return : boolean
String.prototype.isJumin = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var jumin = eval("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[1234]{1}[0-9]{6}$/)");
    if(jumin == null) {
       return false;
    }else{
       jumin = jumin.toString().num().toString();
    }
    // 생년월일 체크
    var birthYY = (parseInt(jumin.charAt(6)) == (1 ||2)) ? "19" : "20";
    birthYY += jumin.substr(0, 2);
    var birthMM = jumin.substr(2, 2) - 1;
    var birthDD = jumin.substr(4, 2);
    var birthDay = new Date(birthYY, birthMM, birthDD);
    if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
        return false;
    }       
    var sum = 0;
    var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
    var last = parseInt(jumin.charAt(12));
    
    for(var i = 0; i < 12; i++) {
        sum += parseInt(jumin.charAt(i)) * num[i];
    }
   
    return ((11 - sum % 11) % 10 == last) ? true : false;
}

// 외국인 등록번호 체크 - arguments[0] : 등록번호 구분자
// XXXXXX-XXXXXXX
// @return : boolean
String.prototype.isForeign = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var jumin = eval("this.match(/[0-9]{2}[01]{1}[0-9]{1}[0123]{1}[0-9]{1}" + arg + "[5678]{1}[0-9]{1}[02468]{1}[0-9]{2}[6789]{1}[0-9]{1}$/)");
    if(jumin == null) {
        return false;
    }else{
        jumin = jumin.toString().num().toString();
    }
    // 생년월일 체크
    var birthYY = (parseInt(jumin.charAt(6)) == (5 || 6)) ? "19" : "20";
    birthYY += jumin.substr(0, 2);
    var birthMM = jumin.substr(2, 2) - 1;
    var birthDD = jumin.substr(4, 2);
    var birthDay = new Date(birthYY, birthMM, birthDD);
    if(birthDay.getYear() % 100 != jumin.substr(0,2) || birthDay.getMonth() != birthMM || birthDay.getDate() != birthDD) {
        return false;
    }
    if((parseInt(jumin.charAt(7)) * 10 + parseInt(jumin.charAt(8))) % 2 != 0) {
       return false;
    }
    var sum = 0;
    var num = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5]
    var last = parseInt(jumin.charAt(12));
    for(var i = 0; i < 12; i++) {
        sum += parseInt(jumin.charAt(i)) * num[i];
    }
    return (((11 - sum % 11) % 10) + 2 == last) ? true : false;
}

// 법인 등록번호 체크 - arguments[0] : 등록번호 구분자
// XXXXXX-XXXXXXX
// @return : boolean
String.prototype.isCorpnum = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var corpnum = eval("this.match(/[0-9]{6}" + arg + "[0-9]{7}$/)");
    if(corpnum == null) {
        return false;
    }else{
        corpnum = corpnum.toString().num().toString();
    }
    var sum = 0;
    var num = [1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2]
    var last = parseInt(corpnum.charAt(12));
    for(var i = 0; i < 12; i++) {
       sum += parseInt(corpnum.charAt(i)) * num[i];
    }
    return ((10 - sum % 10) % 10 == last) ? true : false;
}

// 사업자번호 체크 - arguments[0] : 등록번호 구분자
// XXX-XX-XXXXX
// @return : boolean
String.prototype.isBiznum = function() {
    var arg = arguments[0] ? arguments[0] : "";
    var biznum = eval("this.match(/[0-9]{3}" + arg + "[0-9]{2}" + arg + "[0-9]{5}$/)");
    if(biznum == null) {
        return false;
    }else{
        biznum = biznum.toString().num().toString();
    }
    var sum = parseInt(biznum.charAt(0));
    var num = [0, 3, 7, 1, 3, 7, 1, 3];
    for(var i = 1; i < 8; i++) sum += (parseInt(biznum.charAt(i)) * num[i]) % 10;
    sum += Math.floor(parseInt(parseInt(biznum.charAt(8))) * 5 / 10);
    sum += (parseInt(biznum.charAt(8)) * 5) % 10 + parseInt(biznum.charAt(9));
    return (sum % 10 == 0) ? true : false;
}
 
 
 
 
 
 
// 주민번호검사(참고용)
function chkresno(resno) {
  // 주민번호의 형태와 7번째 자리(성별) 유효성 검사
  fmt = /^\d{6}-[1234]\d{6}$/;
  if (!fmt.test(resno)) {
    alert("잘못된 주민등록번호입니다."); return;
  }
  // 날짜 유효성 검사
  birthYear = (resno.charAt(7) <= "2") ? "19" : "20";
  birthYear += resno.substr(0, 2);
  birthMonth = resno.substr(2, 2) - 1;
  birthDate = resno.substr(4, 2);
  birth = new Date(birthYear, birthMonth, birthDate);
  if ( birth.getYear() % 100 != resno.substr(0, 2) ||
       birth.getMonth() != birthMonth ||
       birth.getDate() != birthDate) {
    alert("잘못된 주민등록번호입니다."); return;
  }
  // Check Sum 코드의 유효성 검사
  buf = new Array(13);
  for (i = 0; i < 6; i++) buf[i] = parseInt(resno.charAt(i));
  for (i = 6; i < 13; i++) buf[i] = parseInt(resno.charAt(i + 1));
  multipliers = [2,3,4,5,6,7,8,9,2,3,4,5];
  for (i = 0, sum = 0; i < 12; i++) sum += (buf[i] *= multipliers[i]);
  if ((11 - (sum % 11)) % 10 != buf[12]) {
    alert("잘못된 주민등록번호입니다."); return;
  }
  alert("정상적인 주민등록번호입니다.");
}
 
// 사업자등록번호 체크(참고용)
function check_busino(vencod) { 
  var sum = 0; 
  var getlist =new Array(10); 
  var chkvalue =new Array("1","3","7","1","3","7","1","3","5"); 
  for(var i=0; i<10; i++) { getlist[i] = vencod.substring(i, i+1); } 
  for(var i=0; i<9; i++) { sum += getlist[i]*chkvalue[i]; } 
  sum = sum + parseInt((getlist[8]*5)/10); 
  sidliy = sum % 10; 
  sidchk = 0; 
  if(sidliy != 0) { sidchk = 10 - sidliy; } 
  else { sidchk = 0; } 
  if(sidchk != getlist[9]) { return false; } 
  return true; 
}


반응형

'차근차근 > JAVA Script' 카테고리의 다른 글

자바스크립트에서 해쉬맵  (0) 2014.07.29
자바스크립트 다차원배열  (0) 2014.07.29
정규표현식 총정리  (0) 2014.07.29
이메일 체크 정규식 , 자바스크립트  (0) 2014.07.29
정규표현식  (0) 2014.07.29