일반 전화번호 정규식
/^\d{2,3}-\d{3,4}-\d{4}$/;
아이디나 비밀번호 정규식
/^[a-z0-9_]{4,20}$/;
핸드폰번호 정규식
/^\d{3}-\d{3,4}-\d{4}$/;
var regExp = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
if ( !regExp.test( document.frm.hp.value ) ) {
alert("잘못된 휴대폰 번호입니다. 숫자, - 를 포함한 숫자만 입력하세요.");
return false
}
이메일 체크 정규식
/^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i;
functionisemail(strValue)
{
varregExp = /[0-9a-zA-Z][_0-9a-zA-Z-]*@[_0-9a-zA-Z-]+(\.[_0-9a-zA-Z-]+){1,2}$/;
//입력을안했다면
if(strValue.lenght == 0)
{returnfalse;}
//데이터형식이맞지않다면
if(!strValue.match(regExp))
{returnfalse;}
returntrue;
}
//한글이 하나라도 섞여 있으면true를 반환
functionis_han(val) {
varjudge = false;
for(vari = 0; i < val.length; i++) {
varchr = val.substr(i,1);
chr = escape(chr);
if(chr.charAt(1) == "u") {
chr = chr.substr(2, (chr.length - 1));
if((chr >= "3131"&& chr <= "3163") || (chr >= "AC00"&& chr <= "D7A3")) {
judge = true;
break;
}
}
elsejudge = false;
}
returnjudge;
}
//한글로만 되있으면true를 반환= 영어, 숫자, 특수문자가 있으면false
functionhan_only(val) {
varjudge = false;
for(vari = 0; i < val.length; i++) {
varchr = val.substr(i,1);
chr = escape(chr);
if(chr.charAt(1) == "u") {
chr = chr.substr(2, (chr.length - 1));
if((chr >= "3131"&& chr <= "3163") || (chr >= "AC00"&& chr <= "D7A3")) judge = true;
} else{
judge = false;
break;
}
}
returnjudge;
}
//영어로만 되있으면true를 반환= 한글, 숫자, 특수문자가 있으면false
functioneng_only(val) {
varre = /^[A-Za-z]+$/g;
varrs = re.test(val);
returnrs;
}
//이메일 주소 확인
functionis_email(str) {
varr1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
varr2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
return(!r1.test(str) && r2.test(str));
}
//숫자만 입력 확인
functionis_number(str) {
varr = new RegExp("^[0-9]+$");
returnr.test(str);
}
//전화번호 입력 확인
functionis_phone(str) {
varr = new RegExp("^[0-9]{2,4}-[0-9]{2,4}-[0-9]{4,4}$");
returnr.test(str);
}
//공백제거
functiontrim(str) { //trim()함수 구현
varnewStr = str.replace(/^\s+/,"").replace(/\s+$/,"");
returnnewStr;
}
//enter key를 눌렀을 때submit 처럼 사용한다
functionenter_key(form) {
if(event.keyCode ==13) {
form.submit();
}
}
// 입력날짜의 기본값은mm/dd/yy이고 다른 형식이면arguments를 줘야한다.
functionis_date(datein){
vartype= isDate.arguments[1];
varrval = false;
varindate=datein;
if(indate.indexOf("-")!=-1) varsdate = indate.split("-");
elsevarsdate = indate.split("/");
if(type=="yy/mm/dd") {
varnewdate = Array(3);
newdate[0] = sdate[1];
newdate[1] = sdate[2];
newdate[2] = sdate[0];
indate = newdate.join("/");
sdate = indate.split("/");
}
varchkDate=new Date(Date.parse(indate))
varcmpDate=(chkDate.getMonth()+1)+"/"+(chkDate.getDate())+"/"+(chkDate.getYear())
varindate2=(Math.abs(sdate[0]))+"/"+(Math.abs(sdate[1]))+"/"+(Math.abs(sdate[2]))
if(indate2!=cmpDate) rval = false;
else{
if(cmpDate=="NaN/NaN/NaN") rval = false;
elserval = true;
}
returnrval;
}
//입력시 값 체크onkeydown="handlerNum()", 최대값 제한: MaxLength="5"
functionhandlerNum() {
e = window.event; //윈도우event
//숫자열0 ~ 9 : 48 ~ 57, 키패드0 ~ 9 : 96 ~ 105 ,8 : backspace, 46 : delete -->키코드값을 구분합니다.
if(e.keyCode >= 48 && e.keyCode <= 57 || e.keyCode >= 96 && e.keyCode <= 105 || e.keyCode == 8 ||
e.keyCode == 46){
if(e.keyCode == 48 || e.keyCode == 96){ //0을 눌렀을경우
if(txtBox1.value == "")//아무것도 없는상태에서0을 눌렀을경우
e.returnValue=false;
else
return;
}
else//0이 아닌숫자
return;
} else{ //숫자가 아니면 넣을수 없다.
alert('숫자만 입력가능합니다');
e.returnValue=false;
}
}
//주민번호 확인
functionis_ssn(SSN1, SSN2) {
if(SSN1.length != 6 || SSN2.length != 7) returnfalse;
varSSN = SSN1 + SSN2;
varstrA, strB, strC, strD, strE, strF, strG, strH, strI, strJ, strK, strL, strM, strN, strO;
varnCalA, nCalB, nCalC;
strA = SSN.substr(0, 1);
strB = SSN.substr(1, 1);
strC = SSN.substr(2, 1);
strD = SSN.substr(3, 1);
strE = SSN.substr(4, 1);
strF = SSN.substr(5, 1);
strG = SSN.substr(6, 1);
strH = SSN.substr(7, 1);
strI = SSN.substr(8, 1);
strJ = SSN.substr(9, 1);
strK = SSN.substr(10, 1);
strL = SSN.substr(11, 1);
strM = SSN.substr(12, 1);
// CheckSum
strO = strA*2 + strB*3 + strC*4 + strD*5 + strE*6 + strF*7 + strG*8 + strH*9 + strI*2 + strJ*3 + strK*4 + strL*5;
nCalA = eval(strO);
nCalB = nCalA % 11;
nCalC = 11 - nCalB;
nCalC = nCalC % 10;
strv = '19';
strw = SSN.substr(0, 2);
strx = SSN.substr(2, 2);
stry = SSN.substr(4, 2);
// 날짜수 체크
strz = strv + strw;
if((strz % 4 == 0) && (strz % 100 != 0) || (strz % 400 == 0)) yunyear = 29;
elseyunyear = 28;
if((strx <= 0) || (strx > 12)) return false;
if((strx == 1 || strx == 3 || strx == 5 || strx == 7 || strx == 8 || strx == 10 || strx == 12) && (stry > 31 || stry <= 0)) return false;
if((strx == 4 || strx == 6 || strx == 9 || strx == 11) && (stry > 30 || stry <= 0)) return false;
if(strx == 2 && (stry > yunyear || stry <= 0)) return false;
if(!((strG == 1) || (strG == 2) || (strG == 3) || (strG ==4))) return false;
if( nCalC != strM ) return false;
return true;
}
[출처] [Javascript] 정규식|작성자 findaday