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

C# 如何确保文本框是字母数字的,但没有前导数字?,c#,asp.net,regex,C#,Asp.net,Regex,我的web应用程序包含一个文本框,我想限制它的输入。我想阻止用户输入以下文本: 从空白开始 以数字以外的内容开始 在前导字符后包含字母数字字符 谢谢你的建议 对于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]*$) // Slightl

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

  • 从空白开始
  • 以数字以外的内容开始
  • 在前导字符后包含字母数字字符

谢谢你的建议

对于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可能性的更多信息,请参见

编辑


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

对于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可能性的更多信息,请参见

编辑


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

不要以字母数字的空白开始:
[a-zA-Z]+

后跟0或更多字母数字:
[a-zA-Z0-9]*

最终表达

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

不要以字母数字的空格开头:
[a-zA-Z]+

后跟0或更多字母数字:
[a-zA-Z0-9]*

最终表达

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

防止用户不从…
开始实际上是指
从…
开始(双重否定)。对于像这样的问题,最好提供匹配/不匹配的字符串示例。
防止用户不从…
真的是指
从…
开始(双重否定)。对于此类问题,最好提供匹配/不匹配的字符串示例。