2012-01-03 2 views
0

허용되는 문자 목록 만 사용하여 문자열의 유효성을 검사하는 방법을 찾으려고합니다. 이 경우 Javascript 정규식 - 허용 목록을 사용하는 잘못된 문자

var valid = validate('This is my string!', 'abcdefghijklmnopqrstuvwxyz'); 

function validate(value, allowed_chars){ 
      var reg = new RegExp('[' + allowed_chars + ']'); 
      var valid = reg.test(value); 
      return valid; 
} 

, 나는 그것이 문자열에 느낌표가 있고 그가 허용되는 문자에 넣어되지 않았기 때문에 false를 반환하는 함수에 대한 바랍니다. 어떤 아이디어?

도움말에 감사드립니다. 감사합니다.

루프를 사용하여 각 문자를 확인하고 싶지 않습니다.

답변

7

정규 표현식이 단일 문자와 일치합니다. 한정 기호를 추가하십시오.

var reg = new RegExp('[' + allowed_chars + ']+'); 

는 '+' '이 하나 개 이상의 발행 수'의미

당신은이 패턴이 전체 문자열과 일치하는 경우 테스트 할

. 선의 시작과 끝에 마커를 추가하십시오.

var reg = new RegExp('^[' + allowed_chars + ']+$'); 

또한 대문자와 공백을 정규식에 추가 할 수도 있습니다. 정규 표현식을 디버그하려면 online regex tester을 사용하십시오.

+0

Perfect! 시작과 끝에서 놓치는 표시였습니다! – MichaelH

+0

님이 답변을 다음과 같이 업데이트했습니다 :-) –

+0

도움이되는 답변 (답변 왼쪽에있는 체크 표시)을 수용해야합니다. –

2

당신은) (당신의 정규 표현식에

var reg = new RegExp('^[' + allowed_chars + ']+$'); 
0

사용 element.match을 ^$을 추가해야합니다; 이 기능을 사용하면 Regexp와 일치시킬 수 있습니다.