如何确保文本框是字母数字但没有前导数字?

时间:2009-11-02 07:32:23

标签: c# asp.net regex

我的网络应用程序包含一个文本框,我想限制其输入。我想阻止用户输入以下文字:

  • 以空格开头
  • 以数字
  • 以外的其他内容开头
  • 在主角后面包含字母数字字符。

感谢您的建议!

2 个答案:

答案 0 :(得分:3)

对于ASCII字符,您可以使用:

^[a-zA-Z][a-zA-Z0-9]*$ // Note you don't need the "+" after the first character group.
                       // or...
(?i:^[a-z][a-z0-9]*$)  // Slightly shorter, albeit more unreadable, syntax (?i: ... ) makes the expression case-insensitive 

如果你想匹配空字符串,只需将表达式包装在“(...)?”中,如下所示:

^([a-zA-Z][a-zA-Z0-9]*)?$

如果您想使用Unicode,可能需要使用:

^\p{L}[\p{L}\p{Nd}]*$

Unicode w。空字符串:

^(\p{L}[\p{L}\p{Nd}]*)?$

要详细了解正则表达式中的unicode可能性,请参阅this page上的Regular-Expressions.info

修改

在一个答案中收集了所有可能性。

答案 1 :(得分:3)

不要以字母数字的空格开头:[a-zA-Z]+
后跟0或更多字母数字:[a-zA-Z0-9]*

最终表达

^[a-zA-Z]+[a-zA-Z0-9]*$