我一直在学习正则表达式是如何工作的,这对我来说非常棘手。我想从输入字段验证下面的字符。基本上,如果字符串包含这些字符中的任何一个,则alert('bad chars')
- /
- \
- #
- &
我找到了这个代码,但当我改变它时似乎不起作用。如何更改此代码以满足我的需求?
var str = $(this).val();
if(/^[a-zA-Z0-9- ]*$/.test(str) == false) {
alert('bad');
return false;
} else {
alert('good');
}
/^[a-zA-Z0-9- ]*$/
的含义如下:
^
字符串必须从这里开始[a-zA-Z0-9- ]
介于a
和z
之间的大写或小写字母,介于0
和9
之间的数字,短划线(-
)和空格*
重复0次以上$
字符串必须在此处结束
在"除之外的任何字符"的情况下,您可以使用类似的^
:/^[^/\#&]*$/
。如果匹配,那么它就没有这些字符。紧接在[
之后的^
意味着匹配任何不是以下的内容。
您可以尝试以下操作:
if("/[\/#&]/".test(str) == true) {
alert('bad');
return false;
} else {
alert('good');
}
注意:我不是100%确定JavaScript与.NET正则表达式中需要转义哪些字符,但基本上,我的意思是,如果您的字符串包含任何字符、
/
、#
或&
,则提醒"坏"。