我正在使用 ASP.NET 3.5、VB.NET,并且正在尝试通过正则表达式验证一些输入。
我的表达是:
^[a-zA-Z'_''-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı ''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$
它适用于我包含的所有特殊字符,除了“ - ”。它只是行不通。我试过 Internet Explorer 和 Firefox,同样的问题。如何修复?
我正在使用 ASP.NET 3.5、VB.NET,并且正在尝试通过正则表达式验证一些输入。
我的表达是:
^[a-zA-Z'_''-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı ''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$
它适用于我包含的所有特殊字符,除了“ - ”。它只是行不通。我试过 Internet Explorer 和 Firefox,同样的问题。如何修复?
- 字符在该上下文中具有特殊含义。用反斜杠转义它或将其列为块中的最后一个字符。
为什么都是单引号?它们是不必要的。
^[-a-zA-Z_/\\@&.,çÇöÖIiiiIgGsSüÜ\s\d]{1,50}$ ^^^
将“-”移动到字符类的开头或结尾以使其识别。此外,反斜杠需要正确转义,否则您也无法匹配反斜杠。
请参阅上面的“^”标记。
在正则表达式字符组[...]
中,减号表示指定合法字符范围的范围。如果您有很多连续符号(所有字母、数字等)并且不想全部列出它们,这很有用。
示例:[0-9]
这将匹配所有数字 0、1、2、3、4、5、6、7、8 或 9,但不匹配减号。
要直接匹配减号,请在其前面加上反斜杠:
示例:[0\-9]
这将匹配数字 0、减号或数字 9。
您必须通过将 \ 放在它前面来转义 - 字符。然后正则表达式将变为
^[a-zA-Z'_''\-''/'' ''\''@''&''.'',''ç''Ç''ö''Ö''I''ı''i''İ''ğ''Ğ''ş''Ş''ü''Ü'\s\d]{1,50}$