1

我一直在学习正则表达式的工作原理,这对我来说非常棘手。我想从输入字段验证下面的这个字符。基本上,如果字符串包含这些字符中的任何一个,alert('bad chars')

  1. /
  2. \
  3. #
  4. &

我找到了这段代码,但是当我改变它时似乎不起作用。如何更改此代码以满足我的需要?

var str = $(this).val();
if(/^[a-zA-Z0-9- ]*$/.test(str) == false) {
    alert('bad');
    return false;
} else {
    alert('good');
}
4

2 回答 2

1

您可以尝试以下操作:

if("/[\\/#&]/".test(str) == true) {
    alert('bad');
    return false;
} else {
    alert('good');
}

注意:我不是 100% 需要在 JavaScript 与 .NET 正则表达式中转义哪些字符,但基本上,我是说如果您的字符串包含任何字符\、或/,则警告“坏”。#&

于 2013-08-02T16:44:01.213 回答
1

/^[a-zA-Z0-9- ]*$/意思如下:

  • ^字符串必须从这里开始
  • [a-zA-Z0-9- ]a和之间的字母z大写或小写、和之间的数字09破折号 ( -) 和空格。
  • *重复 0 次或多次
  • $字符串必须在这里结束。

在“任何字符但”的情况下,您可以^像这样使用:/^[^\/\\#&]*$/. 如果这匹配 true,那么它没有任何这些字符。^在 a [mean之后,匹配任何不是以下内容的内容

.

于 2013-08-02T16:44:32.877 回答