我有一个字符串,我想验证该字符串,以便它不能包含某些字符,如'/''\''&' ';'等等......如何一次验证所有这些?
答案 0 :(得分:15)
您可以使用正则表达式解决此问题!
mystring = "hello"
yourstring = "bad & string"
validRegEx = /^[^\\\/&]*$/
alert(mystring.match(validRegEx))
alert(yourstring.match(validRegEx))
匹配正则表达式返回字符串(如果正常),如果无效,则返回null!
说明:
/
)而不是引号("
)。 validRegEx
的第一个和最后一个字符使它与整个字符串匹配,而不仅仅是部分,克拉将其锚定到开头,美元符号结束。 [
和]
)之间的部分是一个字符类,它匹配任何字符,只要它在类中。其中的第一个字符,一个克拉,意味着该类被否定,以匹配字符类中未提及的字符。如果省略了,则该类将匹配它指定的字符。
\\
和\/
是反斜杠转义的,因为反斜杠本身就是其他东西的转义序列,正斜杠会让解析器误以为它已达到正则表达式的结尾,(与字符串中的转义引号完全相似)。 &
)没有特殊含义,并且没有转义。 *
)意味着它之前的任何内容应该匹配零次或多次,这样字符类就会吃掉尽可能多的字符不是向前或向后的斜线或&符号,如果它找不到,则不包括任何。如果要确保匹配的字符串非空,可以用加号(+
)替换它。 答案 1 :(得分:5)
我会使用正则表达式。
请参阅Mozillla.org的this guide。这个article也很好地介绍了JavaScript中的正则表达式。
答案 2 :(得分:3)
Here是关于Javascript验证的好文章。请记住,您还需要在服务器端进行验证。 Javascript验证很容易被规避,因此不应出于安全原因而使用它,例如阻止SQL注入或XSS攻击。
答案 3 :(得分:2)
你可以学习正则表达式,或者(如果你一次只检查一个字符可能更简单)你可以有一个字符列表,然后是某种sanitize
函数从字符串中删除每一个。
var myString = "An /invalid &string;";
var charList = ['/', '\\', '&', ';']; // etc...
function sanitize(input, list) {
for (char in list) {
input = input.replace(char, '');
}
return input
}
那么:
sanitize(myString, charList) // returns "An invalid string"
答案 4 :(得分:1)
您可以使用带有正则表达式的测试方法:
function validString(input){
return !(/[\\/&;]/.test(input));
}
validString('test;') //false
答案 5 :(得分:0)
您可以使用正则表达式。例如,如果您的字符串匹配:
[\\/&;]+
然后它无效。看着: http://www.regular-expressions.info/javascriptexample.html
答案 6 :(得分:0)
您可以使用regular expression。
答案 7 :(得分:0)
正如其他人已经回答你可以用regexp来解决这个问题,但是记得还要检查服务器端的值。无法保证用户已激活JavaScript。永远不要相信用户输入!