자바스크립트에서 정규표현식 사용하기
정규표현식이란
날이 갈수록 개인정보 보호에 관련하여 보안정책을 점진적으로 강화하고 있다. 이에 따라 Web에서 회원가입 시 passowrd 설정을 복잡하게 조합해야만 정상적으로 가입을 할 수 있다. 이러한 입력 규칙을 정해주는 것이다. 쉽게 이야기 하자면 회원가입을 할때 아이디가 한글로 적힌게 있다면 걸러주기도 하며 맨앞부터 3글자는 한글이고 뒤에는 영어만 지정하고 싶을 때, 특정범위를 지정하거 그 범위내에선 어떠한 입력값만 넣을 수 있도록 제한을 거는 방법이다.
사실 위와 같이 제한을 거는 방법은 상당히 복잡하고 어렵다.. 쓰이는 부분도 그렇게 많지 않은거 같고.. 그래서 보통의 사람들은 다른 사람이 만들어진 것을 쓰는 경우가 많다. 하지만 자신만의 특정한 규칙을 만들고 싶다면 따로 공부 하길 바란다. 오늘 나는 어떤식으로 적용하는지 간단하게 포스팅 할 예정이다.
내가 해본 방식은 2가지다. 물론 더 많지만 일단 내가 직접해본게 2가지다. 자바(이클립스)로 하거나 자바스크립트로 하거나...
여기서 이야기할 방식은 자바스크립트다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
<body>
<input type="text" id="id">
<button type="button" onclick="fn_ab();">실행</button>
<script>
function fn_ab(){
var id = $('#id').val();
var koreaCk = /[ㄱ-ㅎ|ㅏ-ㅣ|가-힣]/;
if(koreaCk.test(id)){
alert("한글이 섞여있으니 바꾸세요!");
return;
}
}
</script>
</body>
|
cs |
이런식으로 버튼을 클릭 했을 때 input의 값을 가져온 뒤에 koreaCk라는 조건을 \\사이에 만들어준다. 참고로 저 식이 한글전체를 체크해주는 옵션이다. 그래서 test라는 함수로 변수값을 넣고 돌려주면 된다. 다른 조건도 조건내용만 변경해서 충분히 사용 가능 할 것이다.
*test외에도 search, exec, match등을 사용할 수 있다.
정규화에 사용되는 규칙들
1. 숫자만
var regex= /[^0-9]/g
2. 한글만
var regex= /[a-z0-9]|[ \[\]{}()<>?|`~!@#$%^&*-_+=,.;:\"'\\]/g;
3. 이메일
var regex=/^[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[@]{1}[-A-Za-z0-9_]+[-A-Za-z0-9_.]*[.]{1}[A-Za-z]{1,5}$/;
4. 전화번호
var regex= /^\d{2,3}-\d{3,4}-\d{4}$/;
5. 비밀번호
- 아래와 같은 방법으로 규칙을 정한다음에 포함여부에 따라 처리해주면 됩니다.
var num = pw.search(/[0-9]/g);
var eng = pw.search(/[a-z]/ig);
var spe = pw.search(/[`~!@@#$%^&*|₩₩₩'₩";:₩/?]/gi);
if( (eng >= 0) && (num >= 0 || spe >= 0)){
// 정상
} else {
// 오류
}
출처: https://intro0517.tistory.com/135 [전디버거의 코딩이야기]