2011-12-12 4 views
-1

가 난 단지 hebrew 또는 english을 허용하는 자바 스크립트 정규식을 필요로 허용하고, 문자 만자바 스크립트는 특정 입력

" ' - 나는이 일에 도달 :

 var allowed = /^(?:[\u0590-\u05FF\uFB1D-\uFB40]+|[\w]+|["'])$/i; 
     if(!allowed.exec(name)) { 
      alert('not allowed'); 
     } 

그것은 어떤 문제가 있습니까?

+1

무엇이 잘못 되었습니까? –

+5

나는 그것과 함께 무엇이 _is_ 몰라? 오류가 있거나 가양 성 또는 거짓 음성이 있습니까, 아니면 ...? 그 또는 조건들을 사용하는 대신에 같은'[]'안에 허용되는 모든 문자들을 넣지 않는 것이 어떨까요? 또한'.exec()'대신'if (! allowed.test (name))'라고 말하고 싶을 수도 있습니다. – nnnnnn

답변

3

무슨 일이 잘못

무엇 즉시 나를 밖으로 점프 [?] :

  • 귀하의 정규식은 - 당신은 \w를 사용
  • 을 허용 지정하지 않는 _A-Za-z을 허용합니다.
  • test을 사용할 때 exec을 사용합니다. 당신이 히브리어 영어 또는 있는지 확인하려는 경우,

    var allowed = /^[-A-Z"'\u0590-\u05FF\uFB1D-\uFB40]+$/i; 
    if(!allowed.test(name)) { 
        alert('not allowed'); 
    } 
    

    또는 :

  • | 표현은 불필요하다,

다음을 시도 통일 된 문자 클래스를 사용

/^(?:[-A-Z"']+|[-"'\u0590-\u05FF\uFB1D-\uFB40]+)$/i 

그게 도움이되지 않는다면, 그 이유가 적합하지 않은 이유에 대해 구체적으로 설명해야합니다. 당신.

+2

'|'는 불필요 할뿐만 아니라 모든 히브리어 문자 * 또는 * all-ASCII 영숫자 * 또는 * 따옴표와 일치하지만 *는 일치하지 않도록 일치에 영향을 미칩니다. –