【问题标题】:Javascript regex for validating name without accented characters用于验证没有重音字符的名称的 Javascript 正则表达式
【发布时间】:2013-08-08 09:05:40
【问题描述】:

我正在使用一个简单的 Javascript 正则表达式来验证人们的姓名。但是,我不想让用户输入重音字符,如 ãäõö 等。我知道这些实际上可以是名称中的有效字符,但对于我的练习,我需要能够过滤掉它们。

我当前的正则表达式:

^[a-zA-Z]+('|-|.|)[a-zA-Z\s]+$

这也匹配重音字符。如何修改此正则表达式,使其不匹配带有重音符号(或任何 Unicode 字符)的名称?

【问题讨论】:

    标签: javascript regex validation


    【解决方案1】:

    删除.,因为. 匹配任何字符。这可能会导致匹配的重音字符。

    ^[a-zA-Z]+('|-)[a-zA-Z\s]+$
    

    如果你的意思是文字点,或者转义.

    ^[a-zA-Z]+('|-|\.)[a-zA-Z\s]+$
    

    【讨论】:

    • 您还应该删除最后一个管道字符,因为它会在 |) 之间创建一个空的(尽管无害的)字符匹配。
    • @mart1n,我删除了它。谢谢。
    【解决方案2】:

    要匹配单个字符,最好使用类[...],而不是具有替代品的组(...|...)

    ^[a-zA-Z]+['.-][a-zA-Z\s]+$
    

    请注意,这并非 100% 准确,因为它会验证 foo.bar 等内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多