2013-07-16 3 views
2

다음 정규식이 JQuery에 있습니다. 항상 참을 반환합니다.정규식은 항상 true를 반환합니다.

var reg = new RegExp("[a-zA-Z0-9 ,]+"); 
var key = $('#keyId').val().trim(); 
if (key.match(reg)) { 
    $("#TitleError").hide(); 
} 
else { 
    $("#TitleError").text("special characters not allowed!!").show(); 

} 

그것은 예를 들어, 모든 것을 true를 돌려 "ABCD, ^는 & & &^&는"거짓이어야한다, 그것은 true를 반환합니다.

+1

* "나는 다음과 같은 정규 표현식을 JQuery에서 가지고있다."* jQuery는 정규 표현식과 전혀 관련이 없다. jQuery는 함수 라이브러리입니다. * JavaScript *는 다른 것들 사이에서 정규 표현식을 사용하는 언어입니다. –

답변

4

match 문자열에서 발견 된 일치를 반환합니다. 당신이 정말로 원하는 것은 test입니다. like this

/^[a-zA-Z0-9 ,]+$/.test(key) 
or 
reg.test(key) 
+0

Thanks Shyam. 시나리오 일치가 실패합니까? 나는 그것이 실제로 동일을 생각한다? – TBA

+1

여기서'^'와'$'는 전체 문자열이 표현식과 일치해야한다는 것을 의미합니다. ''ABCD,^&&&^& "'는 정규 표현식과 일치하는 몇몇 문자를 가지므로 반환됩니다. 입력에 없음 (예 : ''^ &&&^& "''matches'는'null'을 반환합니다. 부울 테스트에 실패합니다 – shyam

+0

Thanks Shyam :) – TBA

2

당신의 정규 표현식은 다음과 같아야합니다

var reg = new RegExp('^[a-zA-Z0-9 ,]+$');

+0

감사합니다. 나는 $ !!를 놓쳤습니다! – TBA

+1

또한 @shyam은 다음과 같이 Test 대신 Match를 사용했습니다 :) – TBA

관련 문제