728x90
정규표현식(regular expression)
문자열에서 특정 문자열 패턴을 찾는 기능
최고의 엔진은 Perl(서버 엔지니어가 많이 쓰는 언어)이라 불리는 언어가 가지고 있고,
그걸 조금씩 훔쳐다가 다른 언어에서 사용하고 있음.
문자열 처리가 많을 때, 일반인들도 사용(책저자나 출판사들이 오타 찾을 때 사용)
1. 정규표현식 선언
① 가장 많이 사용됨
<script>
var v_regExp = /abc/;
</script>
② 잘 사용하지 않음
<script>
var v_regExp = new RegExp("abc");
</script>
2. 정규표현식 사용
test는 정규표현식의 method!!
</script>
var v_regExp = /abc/;
var v_str = "aaa abc bbb abc ddd";
alert(v_regExp.test(v_str)); // v_str안에 v_regExp 패턴이 존재하는가?
</script>
<script>
var v_regExp = /abc/;
var v_str = "aaa abc bbb abc ddd";
v_str = v_str.replace(v_regExp,"하");
alert(v_str);
</script>
① g옵션
전체 문장
<script>
var v_regExp = /abc/g;
var v_str = "aaa abc bbb abc ddd";
v_str = v_str.replace(v_regExp,"하");
alert(v_str);
</script>
② i옵션
대소상관없이 다 검색
<script>
var v_regExp = /abc/gi;
var v_str = "aaa abc bbb Abc ddd";
v_str = v_str.replace(v_regExp,"하");
alert(v_str);
</script>
③ replace 정규표현식
가장 많이 사용!!
<script>
var v_regExp = /abc/gi;
var v_str = "aaa abc bbb Abc ddd";
v_str = v_str.replace(v_regExp,"하");
v_str = v_str.replace(/ddd/gi,"파");
alert(v_str);
</script>
④ split 정규표현식
<script>
var v_regExp = /abc/gi;
var v_str = "aaa abc bbb Abc ddd A ddD A dDd";
var v_arr = v_str.split(/ddd/gi);
alert(v_arr);
</script>
3. 전화번호 체크
/^[0-9]{3}-[0-9]{3,4}-[0-9]{4}/
/^\d{3}-\d{3,4}-\d{4}/
<script>
var v_telCheck = /^[0-9]{3}-[0-9]{3,4}-[0-9]{4}/;
var v_forCheck = "9999-9999-999";
if(v_telCheck.test(v_forCheck)){
alert("전화번호입니다.");
}else{
alert("전화번호 형식에 맞지 않습니다.")
}
</script>
var v_forCheck = "999-9999-9999";
더보기
둘 다 가능!
var v_telCheck = /^[0-9]{3}-[0-9]{3,4}-[0-9]{4}/;
var v_telCheck = /^\d{3}-\d{3,4}-\d{4}/;
4. 이메일 체크
/\w+@\w+\.\w+/
<script>
var v_emailCheck = /\w+@\w+\.\w+/;
var v_forCheck = "aaa@pp.";
if (v_emailCheck.test(v_forCheck)) {
alert("이메일입니다.");
} else {
alert("이메일 형식에 맞지 않습니다.")
}
</script>
<script>
var v_emailCheck = /\w+@\w+\.\w+/;
var v_forCheck = "aaa@pp.c";
if (v_emailCheck.test(v_forCheck)) {
alert("이메일입니다.");
} else {
alert("이메일 형식에 맞지 않습니다.")
}
</script>
5. 한글로만 되었는지 체크
/[가-힣]/g
<script>
var v_hangulCheck = /[가-힣]/g;
var v_forCheck = "아우di";
var v_check = v_forCheck.replace(v_hangulCheck, "");
if(v_check.length==0){
alert("한글입니다.");
}else{
alert("한글 외의 글자가 있군요");
}
</script>
6. 활용
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>정규표현식</title>
</head>
<body>
<form>
이름<input type="text" value="" pattern="[가-힣]{3,4}"><br>
전화번호<input type="text" value="" pattern="^\d{3}-\d{4}-\d{4}$"><br>
이메일<input type="text" value="" pattern="^\w+@\w+\.\w+"><br>
<input type="submit" value="전송해도 소용없음">
</form>
</body>
</html>