如何验证字符串只允许字符串或带有数字而不是数字的字符串?

时间:2014-01-15 16:00:47

标签: c# asp.net regex

我有文本框我想给它表达只允许字符串或字符串数​​字但不允许数字..这是否可能?

谢谢你们,你们的答案真的很有帮助,但另一个问题是 我可以阻止用户写下这些符号:或“或”或)或[或{或〜或。或/等...我的意思是任何符号,如那些!

在@rinukkusu帮助我使用正则表达式之后,还有最后一件事,虽然我不想让用户用数字启动字符串,而不是介于两者之间..我希望任何数字都在字符串的末尾。我非常感谢你的努力。谢谢!

继承人我使用的正则表达式

(?!^\d+$)^[A-Za-z0-9]+$

3 个答案:

答案 0 :(得分:1)

是的,只有询问任何数字或数字序列,但要求至少有一个字母:

/^(?![0-9]*$)[a-zA-Z0-9]+$/

这意味着:第一组是任意数字的数字(考虑整个字符串,因为它与开始和结束都相关),这是不允许的。第二组是长度至少为一个字符的任何字母数字序列。因为第一次匹配只会排除数字,所以如果这个数字是matche,那么你的文本至少包含一个字符。

答案 1 :(得分:0)

这应该可以解决您的问题。 更新:并且只匹配字母,下划线和当然数字,但不仅仅是数字

<asp:RegularExpressionValidator
    ID="RegularExpressionValidator1"
    runat="server"
    ErrorMessage="Your error message"
    ControlToValidate="TextBox1"
    ValidationExpression="(?!^\d+$)^\w+$" >
</asp:RegularExpressionValidator>

如果您想指定仅匹配哪些字符,请尝试以下表达式:

(?!^\d+$)^[A-Za-z0-9]+$

答案 2 :(得分:0)

使用正则表达式。如果字符串匹配为数字,则输入无效。例如:

string input = "2cc3d"; //valid

if(Regex.IsMatch(input, @"^\d+$"))
    Console.WriteLine("NOT VALID");
else
    Console.WriteLine("VALID");

如果您不想在代码中执行此操作,则应使用“rinukkusu”提供的解决方案。