Javascript字符串模式验证

And*_*eda 3 javascript regex validation pattern-matching

我有一个字符串,我想验证该字符串,以便它不能包含某些字符,如'/''\''&'';' 等等...我如何一次验证所有这些?

Sin*_*ion 15

你可以用正则表达式解决这个问题!

mystring = "hello"
yourstring = "bad & string"

validRegEx = /^[^\\\/&]*$/

alert(mystring.match(validRegEx))
alert(yourstring.match(validRegEx))
Run Code Online (Sandbox Code Playgroud)

匹配正则表达式返回字符串,如果没有,或者如果无效则返回null!

说明:

  • JavaScript RegEx Literals以字符串分隔,但使用斜杠(/'s)而不是引号("'s).
  • 原因的第一个和最后一个字符validRegEx与整个字符串相匹配,而不仅仅是部分,克拉将其锚定到开头,美元符号结束.
  • 括号([])之间的部分是一个字符类,它匹配任何字符,只要它在类中.其中的第一个字符,一个克拉,意味着该类被否定,以匹配字符类中未提及的字符.如果省略了,则该类将匹配它指定的字符.
    • 接下来的两个序列,\\并且\/反斜杠转义,因为反斜杠本身就是其他东西的转义序列,正斜杠会让解析器误以为它已经到达了正则表达式的末尾,(完全类似于转义中的转义)字符串).
    • &符号(&)没有特殊含义,也没有转义.
  • 剩下的字符,kleene星,(*)意味着它之前的任何一个应该匹配零次或多次,这样字符类将吃掉不是前向或后向斜线或&符号的字符,如果它找不到任何字符,则包括无字符.如果要确保匹配的字符串非空,可以用plus(+)替换它.


Jon*_*alk 5

我会使用正则表达式.

请参阅Mozillla.org的本指南.此文章不也给出了很好的介绍,在JavaScript中的正则表达式.