我需要用波兰字母写上姓氏验证。
我写了这样的东西:
"^[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...;'"
我还有一场比赛。如何“切”点.
和引号之类的符号?
答案 0 :(得分: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
/ v
,Q
/ q
和X
/ {{1} }(来自ASCII字母范围),并将与以下名称匹配:
详细信息
x
-字符串的开头^
-大写波兰字母和1+小写字母[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+
-出现1或0个空格,然后出现大写的波兰字母,再出现1+个小写字母(?:\s[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+)?
-单个空格字符\s
-大写波兰字母和1+小写字母[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+
-出现1个或0个连字符,然后出现一个大写的波兰字母,再出现1个以上的小写字母(?:-[A-PR-UWY-ZĄĆĘŁŃÓŚŹŻ][a-pr-uwy-ząćęłńóśźż]+)?
-字符串的结尾。如果您打算在名称中支持$
,x
和q
,请将v
替换为a-pr-uwy-z
,将a-z
替换为{{ 1}}。