2014-02-06 3 views
0

영숫자, "(", ")"및 공백을 허용하도록 JavaScript에서 문자열의 유효성을 검사하고 싶습니다.정확히 일치하는 문자열을 JavaScript의 정규식을 사용하여 일치 시키십시오.

s1 = "This $h00l*&^ not w0rk342*_(&, <and> always fail" 
s2 = "This should work (ABC1234)" 

내 코드 : 그래서 테스트 문자열은

var regX = new RegExp(/A-Za-z0-9\\(\\)\\x20+/); 
if(!regX.test(s1)){ 
    alert("InValid value."); 
} 

그러나 그것은 모두 문자열을 실패합니다. 시험과 또한

() 함수는 문자열의 일치와 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/test

사람이 도움을 주시기 바랍니다 수없는 전체 문자열을 평가합니다. 당신이 정규식을 사용한다 사전

+0

작성된대로 RE는 "A-Za-z0-9() +" – bmm6o

답변

3

에 감사 : 당신이 빈 문자열을 허용하지 않으려면

/^[A-Za-z0-9() ]*$/ 

+으로 *를 교체합니다.

^$ 문자열의 시작과 끝을 각각 테스트합니다.

*은 0 번 이상 반복한다는 것을 의미합니다. +은 한 번 이상 반복한다는 것을 의미합니다.

문자 클래스 (즉, 문자 집합)를 지정하려면 문자를 [] 안에 넣어야합니다.


더 정규식을 단축하려면 다음 정규식을 만들 것입니다

/^[a-z\d() ]*$/i 

i 플래그은 대문자와 소문자를 구별하지 않고, 필요를 제거하는 A-Z을 지정하려면 일치합니다.

\d은 숫자 0-9의 약자입니다. 속기 문자 클래스는 문자 클래스 안에 포함될 수도 있습니다.

+0

이 포함 된 문자열과 일치합니다.'i' 플래그를 사용하고'A-Z' 옵션을 제거하여 단축 할 수 있습니다. – talemyn

관련 문제