【问题标题】:How can I validate a string to only allow string or string with numbers but not numbers only?如何验证字符串以仅允许字符串或带有数字的字符串,但不允许仅包含数字?
【发布时间】:2014-01-15 16:00:46
【问题描述】:

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

谢谢大家,你的回答真的很有帮助,但是还有另一个问题 我可以阻止用户也写这些符号吗:或`或“或)或[或{或〜或.或/等..我的意思是像那些符号一样的任何符号!

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

这是我使用的正则表达式

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

【问题讨论】:

标签: c# asp.net regex


【解决方案1】:

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

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

这意味着:第一组是任意数量的数字(考虑整个字符串,因为它与开头和结尾都绑定),这是不允许的。第二组是至少一个字符长的任何字母数字序列。因为只有在第一个匹配项匹配时才会排除数字,所以您的文本至少包含一个字符。

【讨论】:

  • 谢谢,但我可以阻止用户写字母 ` 或 "" 或 ) 或 [ 或 { 或 ~ 或 .或/等..我的意思是像那些符号这样的任何符号
  • @user3177576 是的,只有字母和数字。我对正则表达式不是很好(总是尽可能地保持我的所有主题正则表达式的静态类不变)所以我想你可以以某种方式简化它(例如,d 用于数字)。
【解决方案2】:

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

string input = "2cc3d"; //valid

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

如果你不想在代码中这样做,你应该使用“rinukkusu”提供的解决方案。

【讨论】:

    【解决方案3】:

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

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

    如果你想指定只匹配哪些字符,试试这个表达式:

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

    【讨论】:

    • 嘿,伙计,我不知道你是否还在,但你很有帮助,但现在我需要表达式不以数字开头,并且字符串末尾的字符串之间也没有数字也没有下划线..如果你能帮助我,我会很感激你的努力。谢谢!
    • @user3177576 如果您的需求发生变化,您应该发布一个新问题,继续询问不断变化的主题和请求对 SO 不利。也就是说先自己尝试,现在您知道“[a-zA-Z0-9]+”将匹配至少一个字符的任何字母数字序列。 "[a-zA-Z]" 将匹配任何字母序列,而 "[0-9]" 将匹配数字序列......将它们放在一起:至少一个字母和可选的一个或多个数字。它甚至比其他正则表达式更简单。
    • 我已经发布了一个新问题:stackoverflow.com/questions/21158912/…,我自己也尝试过并尝试搜索它,但我对 Regex 真的不是很好:(
    • 顺便说一句,这是我到目前为止所得到的 (?!^\d+$)^[A-Za-z]+[0-9]+$ 它有一个问题,尽管它只允许使用字符串?
    • @user3177576 + 表示一个或多个字符,那么您要求在字符串末尾输入至少一个数字。将[0-9]+$ 替换为[0-9]*$。此外,IMO \d+$ 应该是 \d*$
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-28
    相关资源
    最近更新 更多