繁体   English   中英

如何验证字符串仅允许包含数字的字符串或仅包含数字的字符串?

[英]How can I validate a string to only allow string or string with numbers but not numbers only?

我有文本框,我想给它表达只允许使用字符串或带数字的字符串,但不允许只使用数字的表达式..这可能吗?

谢谢大家,您的回答确实有用,但是还有另一个问题,我可以阻止用户也写这些符号:或`或“或)或[或{或〜或。或/等。

在@rinukkusu帮助我使用正则表达式后,还有最后一件事,尽管我不想让用户以数字开头而不是在字符串之间。.我希望任何数字都在字符串的末尾。 非常感谢您的努力。 谢谢!

我用过的正则表达式

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

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

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

这意味着:第一组是任意数量的数字(考虑到整个字符串,因为它与开始和结束都绑定在一起),这是不允许的。 第二组是任何至少一个字符的字母序列。 因为第一个匹配项仅会排除数字,否则,如果此匹配项,则您的文本至少包含一个字符。

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

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

如果要指定仅应匹配的字符,请尝试以下表达式:

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

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

string input = "2cc3d"; //valid

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM