【问题标题】:JavaScript surname validation with regex使用正则表达式验证 JavaScript 姓氏
【发布时间】:2018-07-08 13:46:12
【问题描述】:

我需要用波兰字母为姓氏写验证。

我是这样写的:

"^[A-Z][\u0000-\u007F\u0100-\u017F]+([ |-][A-Z][\u0000-\u007F\u0100-\u017F])*$"

地点:

  • [A-Z]: 第一个字母必须大写
  • [\u0000-\u007F\u0100-\u017F]+:其他字母
  • ([ |-][A-Z][\u0000-\u007F\u0100-\u017F])*:姓氏的可选第二部分的空格,带有"-"或空格

一切都很好,但是当我输入例如:

"Matt...;'"

我还有一场比赛。如何“剪切”点. 和引号等符号?

【问题讨论】:

标签: javascript regex


【解决方案1】:

看来你可以用

^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+(?:\s[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+)?\s[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+(?:-[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+)?$

请参阅regex demo

它基于所有 Polish alphabet letters regex(不包括 V/vQ/qX/x 来自 ASCII 字母范围)并且将匹配以下名称:

  • 匹配名字
  • 然后可以匹配可选的第二个名字(在空格之后)
  • 姓氏
  • 连字符后的可选姓氏部分。

详情

  • ^ - 字符串开头
  • [A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+ - 一个大写波兰字母和 1 个以上小写字母
  • (?:\s[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+)? - 出现 1 或 0 次空格,然后是大写波兰字母和 1+ 小写字母
  • \s - 单个空格字符
  • [A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+ - 一个大写波兰字母和 1 个以上小写字母
  • (?:-[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+)? - 出现 1 或 0 次连字符,然后是大写波兰字母和 1+ 小写字母
  • $ - 字符串结束。

如果您计划支持名称中的xqv,请将a-pr-uwy-z 替换为a-z,并将A-PR-UWY-Z 替换为A-Z

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 2011-06-10
    • 2010-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-01
    相关资源
    最近更新 更多