【发布时间】: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...;'"
我还有一场比赛。如何“剪切”点. 和引号等符号?
【问题讨论】:
-
我想知道具体的目的是什么?网络上的哪种服务必须如此特别重视人名?
-
\u0000-\u007F全部是 ASCII,而不仅仅是字母。 -
[ |-]是-或空格或|,而不仅仅是-或空格。 -
您的正则表达式不接受
Łukasiewicz。 -
嘿,试试
^[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+(?:[\s-][A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+){1,2}$,它会匹配Jan Maria Rokita和Jan Kowalski,Joanna Kluzik-Rostkowska甚至Edward Ącki。见my answer with Polish (and other) letter ranges。
标签: javascript regex