Javascript允许特定输入

时间:2011-12-12 10:38:32

标签: javascript regex

我需要一个仅允许hebrewenglish的Javascript正则表达式,只允许使用字符" ' -

我达到了这个:

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

它出了什么问题?

1 个答案:

答案 0 :(得分:3)

  

它有什么问题[?]

立即跳出来的是什么:

  • 您的正则表达式未指定允许-
  • 您使用的\w允许_以及A-Za-z
  • 当您使用exec
  • 时,请使用test
  • |表达式是不必要的,使用统一的字符类

尝试以下方法:

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

或者,如果你想确保它是英文希伯来文:

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

如果这对您没有帮助,您需要更具体地说明它不适合您的原因。