0

我正在使用 ASP.NET 3.5、VB.NET,并且正在尝试通过正则表达式验证一些输入。

我的表达是:

^[a-zA-Z'_''-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı ''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$

它适用于我包含的所有特殊字符,除了“ - ”。它只是行不通。我试过 Internet Explorer 和 Firefox,同样的问题。如何修复?

4

4 回答 4

3

- 字符在该上下文中具有特殊含义。用反斜杠转义它或将其列为块中的最后一个字符。

于 2009-02-12T14:21:25.990 回答
3

为什么都是单引号?它们是不必要的。

^[-a-zA-Z_/\\@&.,çÇöÖIiiiIgGsSüÜ\s\d]{1,50}$
  ^^^

将“-”移动到字符类的开头或结尾以使其识别。此外,反斜杠需要正确转义,否则您也无法匹配反斜杠。

请参阅上面的“^”标记。

于 2009-02-12T14:23:49.120 回答
1

在正则表达式字符组[...]中,减号表示指定合法字符范围的范围。如果您有很多连续符号(所有字母、数字等)并且不想全部列出它们,这很有用。

示例:[0-9] 这将匹配所有数字 0、1、2、3、4、5、6、7、8 或 9,但不匹配减号。

要直接匹配减号,请在其前面加上反斜杠:

示例:[0\-9] 这将匹配数字 0、减号或数字 9。

于 2009-02-12T14:21:41.043 回答
1

您必须通过将 \ 放在它前面来转义 - 字符。然后正则表达式将变为

^[a-zA-Z'_''\-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$  
于 2009-02-12T14:23:42.413 回答