* 숫자만 허용하는 정규식
var expText = /[0-9]/;
* IP 입력 형식의 정규식 (xxx.xxx.xxx.xxx)
var expText = /^(1|2)?\d?\d([.](1|2)?\d?\d){3}$/;
* E-Mail 입력 형식의 정규식
var expText = /^([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)(\.[0-9a-zA-Z_-]+){1,2}$/;
* 핸드폰 번호 입력 형식의 정규식
var expText = /^01([0|1|6|7|8|9]?)-?([0-9]{3,4})-?([0-9]{4})$/;
* 일반 전화번호 입력 형식의 정규식
expText = /^\d{2,3}-\d{3,4}-\d{4}$/;
* URL 입력 형식의 정규식
expText = /(?:(?:(https?|ftp|telnet):\/\/|[\s\t\r\n\[\]\`\<\>\"\'])((?:[\w$\-_\.+!*\'\(\),]|%[0-9a-f][0-9a-f])*\:(?:[\w$\-_\.+!*\'\(\),;\?&=]|%[0-9a-f][0-9a-f])+\@)?(?:((?:(?:[a-z0-9\-가-힣]+\.)+[a-z0-9\-]{2,})|(?:[\d]{1,3}\.){3}[\d]{1,3})|localhost)(?:\:([0-9]+))?((?:\/(?:[\w$\-_\.+!*\'\(\),;:@&=ㄱ-ㅎㅏ-ㅣ가-힣]|%[0-9a-f][0-9a-f])+)*)(?:\/([^\s\/\?\.:<>|#]*(?:\.[^\s\/\?:<>|#]+)*))?(\/?[\?;](?:[a-z0-9\-]+(?:=[^\s:&<>]*)?\&)*[a-z0-9\-]+(?:=[^\s:&<>]*)?)?(#[\w\-]+)?)/gmi;
사용은 아래와 같이 사용하면 된다.
if (expText.test([비교할 값]) != true) {
alert("입력에 문제가 있습니다. 확인바랍니다.");
}
'Dev Note/JavaScript'에 해당되는 글 6건
- 2010.06.01 JavaScript 정규식 정리
- 2008.03.08 EMail 체크 JavaScript
- 2008.03.07 주민번호 & 외국인 등록번호 체크 자바스크립트
function checkEmail(emailStr) {
var checkStr = /(\S+)@(\S+)\.(\S+)/;
if (!checkStr.test(emailStr)) {
return false;
}
return true;
}
위 스크립트는 사용자가 입력한 E-Mail 주소의 유효성을 체크하고 이상이 없으면 true를 리턴한다.
여기에 사용 된 정규식을 간단히 알아보면 다음과 같다.
(\S+)@ : "@" 앞에 띄워쓰기가 없는 문자열이 온다.
@(\S+)\. : "@" 뒤 "." 앞에는 띄워쓰기 없는 문자열이 온다.
\.(\S+) : "." 뒤에는 아무 문자열이 온다.
웹에서 주민번호 또는 외국인 등록번호를 입력 받아 체크하는 자바스크립트를 알아보자.
-- 국내인의 주민번호 체크 자바스크립트
function ssnCheck(ssn) {
var lastid, li_mod, li_minus, li_last;
var checkValue = 0;
if (ssn.length != 13) return false;
lastid = parseFloat(ssn.substring(12,13));
checkValue += (parseInt(ssn.substring(0,1)) * 2) + (parseInt(ssn.substring(1,2)) * 3)
+ (parseInt(ssn.substring(2,3)) * 4) + (parseInt(ssn.substring(3,4)) * 5)
+ (parseInt(ssn.substring(4,5)) * 6) + (parseInt(ssn.substring(5,6)) * 7)
+ (parseInt(ssn.substring(6,7)) * 8) + (parseInt(ssn.substring(7,8)) * 9)
+ (+parseInt(ssn.substring(8,9)) * 2) + (parseInt(ssn.substring(9,10)) * 3)
+ (parseInt(ssn.substring(10,11)) * 4) + (parseInt(ssn.substring(11,12)) * 5);
li_mod = checkValue % 11;
li_minus = 11 - li_mod;
li_last = li_minus % 10;
if (li_last != lastid) return false;
return true;
}
-- 외국인 등록번호 체크 자바스크립트
function isFrgNo(fgnno) {
var sum = 0;
var odd = 0;
buf = new Array(13);
for(i=0; i<13; i++) buf[i] = parseInt(fgnno.charAt(i));
odd = buf[7]*10 + buf[8];
if(odd%2 != 0) return false;
if((buf[11]!=6) && (buf[11]!=7) && (buf[11]!=8) && (buf[11]!=9)) return false;
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]);
sum = 11 - (sum%11);
if(sum >= 10) sum -= 10;
sum += 2;
if(sum >= 10) sum -= 10;
if(sum != buf[12]) return false;
return true;
}
그럼 위의 스크립트를 이용하여 사용자가 입력한 주민번호 또는 외국인 등록번호를 체크하는 간단한 예제로 확인해 보자.
<body>
<form name="form" action="" method="post">
주민번호 :
<input type="text" name="ssn1" size="10" maxlength="6" onkeyup="numCheck(this); ssn1_len_check();" />
-
<input type="text" name="ssn2" size="10" maxlength="7" onkeyup="numCheck(this);" />
<input type="button" value="주민번호 체크" onclick="check();"/>
</form>
</body>
여기서 numCheck() 함수는 이전 글의 숫자만 입력 받는 TextField에서 확인할 수 있다.
function numCheck(obj) {
var numCheck = /^\d+$/;
var checkStr = obj.value;
if(checkStr != '') {
if(!numCheck.test(checkStr)) {
alert('숫자만 입력이 가능합니다.');
obj.value = '';
obj.focus();
}
}
}
이외에 사용된 자바스크립트로 주민번호 앞 6자리가 입력 되면 뒷자리 입력으로 넘어가게 하는 ssn1_len_check() 함수와 실제 사용자가 입력한 주민번호 또는 외국인 등록번호를 체크하는 check() 함수가 있다.
function ssn1_len_check() {
var ssn1 = document.form.ssn1.value;
if ( ssn1.length > 5 ) {
document.form.ssn2.focus();
}
}
function check() {
var ssn1 = document.form.ssn1.value;
var ssn2 = document.form.ssn2.value;
if(ssn1 == '') {
alert('주민번호 앞 6자리가 입력되지 않았습니다.');
document.form.ssn1.focus();
return;
}
if(ssn2 == '') {
alert('주민번호 뒷 7자리가 입력되지 않았습니다.');
document.form.ssn2.focus();
return;
}
var ssn = ssn1 + ssn2;
if(ssn2.substring(0,1) == '1' || ssn2.substring(0,1) == '3' ||
ssn2.substring(0,1) == '2' || ssn2.substring(0,1) == '4') {
// 국내 주민번호 체크
if (ssnCheck(ssn) == false ) {
alert('주민번호를 정확히 입력하십시오.');
document.form.ssn1.value = '';
document.form.ssn2.value = '';
document.form.ssn1.focus();
return;
}
} else {
// 외국인 등록번호 체크
if(isFrgNo(ssn) == false) {
alert( "외국인 등록번호를 정확히 입력하십시오." );
document.form.ssn1.value = '';
document.form.ssn2.value = '';
document.form.ssn1.focus();
return;
}
}
}
이상 사용자가 입력한 주민번호 또는 외국인 등록번호를 체크하는 스크립트와 예제를 알아봤습니다.