【发布时间】:2010-12-23 07:42:54
【问题描述】:
我需要使用正则表达式在 c# 和 asp.net 中验证一个 texbox。
我需要允许:
- 字母大写和小写或任意组合
- 重音字母,例如:èèéàù ...
- 数字
- 只有一个空格“”
我需要点不允许:
- 任何特殊字符,例如:|!"£$%&/() ...
有什么想法吗?感谢您的帮助
【问题讨论】:
我需要使用正则表达式在 c# 和 asp.net 中验证一个 texbox。
我需要允许:
我需要点不允许:
有什么想法吗?感谢您的帮助
【问题讨论】:
这可能是一个开始
^([\w\d]+[ ]?)+$
\d 匹配数字
\w 匹配“单词字符”。 .NET RegEx 将 unicode 字符视为单词字符。见:http://regexlib.com/CheatSheet.aspx
我不确定您所说的“一个空格”是什么意思。此表达式允许单词之间有一个空格,但不能有两个空格。
【讨论】:
abcdefghijklmnopqrstuvwxyz!,然后看着你的电脑炸:)。与我自己的模式^\w*(\s\w*)*$ 类似的模式会执行得更好——它只允许一种匹配输入的方式(请注意,在这种情况下空格不是可选的)。另外,请注意\w 已经包含\d。
^\w*(\s\w+)*\s?$ 之类的东西,看起来也很奇怪,应该可以做得更好。
如果验证发生在服务器端,您可以使用该模式:
^\w*(\s\w*)?$
.Net 中的\w 支持 Unicode - 它应该包含所有字母。
请注意,\w 还包括下划线和其他单词连接符。您可以使用[\p{L}\p{Nd}] 而不是\w 来禁止它们。
另请参阅:Character Classes
【讨论】: