【问题标题】:Regular Expression to match only letters正则表达式只匹配字母
【发布时间】:2010-09-14 09:26:43
【问题描述】:

我需要为 RegularExpressionValidator ASP.NET Web 控件编写一个正则表达式。

正则表达式应允许所有字母字符,但不能允许数字或特殊字符(例如:|!"£$%&/()。

知道怎么做吗?

【问题讨论】:

    标签: asp.net regex


    【解决方案1】:
    ^[A-Za-z]+$
    

    验证长度为 1 或更大的字符串,仅由 ASCII 字母组成。

    ^[^\W\d_]+$
    

    对于国际信件也是如此。

    解释:

    [^   # match any character that is NOT a
    \W   # non-alphanumeric character (letters, digits, underscore)
    \d   # digit
    _    # or underscore
    ]    # end of character class
    

    实际上,您会得到 \w 减号(\d_)。

    或者,您可以使用 ASP.NET 支持 Unicode 属性这一事实:

    ^\p{L}+$
    

    验证长度为 1 或更长的 Unicode 字母字符串。

    【讨论】:

    【解决方案2】:

    包括空格:

    "^[a-zA-Z ]*$"
    

    不包括空格:

    "^[a-zA-Z]*$"
    

    要使其成为非可选,请将* 更改为+

    【讨论】:

      【解决方案3】:

      您可以使用正则表达式:

      ^[a-zA-Z]+$
      

      解释:

      • ^ : 开始锚点
      • [..] : 字符类
      • + : 一个或多个重复
      • $ : 结束锚

      【讨论】:

        猜你喜欢
        • 2011-04-06
        • 2011-08-29
        • 1970-01-01
        • 2013-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多