Jquery 특수문자 체크 - jquery teugsumunja chekeu

[Javascript 소스]

<script type="text/javascript"> // 공백이 있나 없나 체크 function checkSpace(str) { if(str.search(/\s/) != -1) { return true; } else { return false; } } // 특수 문자가 있나 없나 체크 function checkSpecial(str) { var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi; if(special_pattern.test(str) == true) { return true; } else { return false; } } // 비밀번호 패턴 체크 (8자 이상, 문자, 숫자, 특수문자 포함여부 체크) function checkPasswordPattern(str) { var pattern1 = /[0-9]/; // 숫자 var pattern2 = /[a-zA-Z]/; // 문자 var pattern3 = /[~!@#$%^&*()_+|<>?:{}]/; // 특수문자 if(!pattern1.test(str) || !pattern2.test(str) || !pattern3.test(str) || str.length < 8) { alert("비밀번호는 8자리 이상 문자, 숫자, 특수문자로 구성하여야 합니다."); return false; } else { return true; } } </script>

 회원가입 시, 이름이나 아이디 공백을 처리하지 않아 "홍길동"처럼 저장되어야하는데 "홍길동 "으로 저장되는 경우가 있습니다. 가입자 입장에서 무의식으로 스페이스를 치고 가입을 하면 DB에 4글자가 들어가서 나중에 "홍길동"이라고 검색 조건을 걸었을 때 찾지 못하는 문제가 발생합니다. 따라서 공백을 제거하는 장치가 필요합니다.

 제 프로젝트 기준으로 프런트인 자바스크립트에서 검사하는 방법과, 백엔드인 자바 스프링에서 검사하는 방법이 있습니다. 또한 입력된 값의 공백을 제거해주는 방법과 공백이 있을 시 오류를 반환하는 방법이 있습니다.

 먼저 자바스크립트에서 공백과 특수문자를 검사하는 방법입니다.

var str = "..."; //공백만 입력된 경우 var blank_pattern = /^\s+|\s+$/g; if(str.replace(blank_pattern, '' ) == "" ){ alert('공백만 입력되었습니다.'); } //문자열에 공백이 있는 경우 var blank_pattern = /[\s]/g; if( blank_pattern.test(str) == true){ alert('공백이 입력되었습니다.'); } //특수문자가 있는 경우 var special_pattern = /[`~!@#$%^&*|\\\'\";:\/?]/gi; if(special_pattern.test(str) == true){ alert('특수문자가 입력되었습니다.'); } //공백 혹은 특수문자가 있는 경우 if(str.search(/\W|\s/g) > -1){ alert( '특수문자 또는 공백이 입력되었습니다.'); }

자바에서 공백과 특수문자 검사하는 방법입니다. Pattern을 사용하여 숫자, 한글, 알파벳 이외가 나오는지 검사합니다.

String str = "..."; //공백만 입력된 경우 if(str.replaceAll(" ", "").equals("")) { System.out.println("공백만 입력되었습니다."); } //특수문자가 입력된 경우 String pattern = "^[0-9|a-z|A-Z|ㄱ-ㅎ|ㅏ-ㅣ|가-힣|\s]*$"; if(!Pattern.matches(pattern, str)){ System.out.println("특수문자가 입력되었습니다."); } //문자열에 공백 혹은 특수문자가 입력된 경우 String pattern = "^[0-9|a-z|A-Z|ㄱ-ㅎ|ㅏ-ㅣ|가-힣]*$"; if(!Pattern.matches(pattern, str)){ System.out.println("공백 혹은 특수문자가 입력되었습니다."); }

 자바스크립트와 자바에서 만약 문자열 사이의 공백을 지워주고 싶다면 모두 str.replace(" ",""); 의 형태로 작성해주면 됩니다. 자바에서는 지금 콘솔에 출력하는 형식으로 작성했지만, 오류검사를 위해 예외 발생으로 처리하면 됩니다. 혹은 간단하게 front에서 검사하고 싶다면 자바스크립트 검사를 넣어주도록 합니다.

아래는 자바 정규식을 만드는 문자열 설명입니다.

 ^  문자열의 시작
 문자열의 종료
 .  임의의 한 문자 (문자의 종류 가리지 않음)
 단, \ 는 넣을 수 없음
 *  앞 문자가 없을 수도 무한정 많을 수도 있음
 앞 문자가 하나 이상
 앞 문자가 없거나 하나있음
 []  문자의 집합이나 범위를 나타내며 두 문자 사이는 - 기호로 범위를      나타낸다. []내에서 ^가 선행하여 존재하면 not 을 나타낸다.
 {}  횟수 또는 범위를 나타낸다.
 ()  소괄호 안의 문자를 하나의 문자로 인식 
 |  패턴 안에서 or 연산을 수행할 때 사용
 \s  공백 문자
 \S  공백 문자가 아닌 나머지 문자
 \w  알파벳이나 숫자
\W   알파벳이나 숫자를 제외한 문자
\d   숫자 [0-9]와 동일
\D   숫자를 제외한 모든 문자
 정규표현식 역슬래시(\)는 확장 문자
 역슬래시 다음에 일반 문자가 오면 특수문자로 취급하고 역슬래시 다음에 특수문자가 오면 그 문자 자체를 의미
(?i)   앞 부분에 (?i) 라는 옵션을 넣어주면 대소문자를 구분하지 않음

*출처

 - 자바스크립트 공백체크, 특수문자체크

 - 자바 정규표현식

Toplist

최신 우편물

태그