1

我正在创建一个 Google 表单,并在文本/段落文本选项中使用数据验证功能。我需要验证人名。名称需要用大写字母填写,并且可能包含可变数量的单词。名称可以是“ FIRSTNAME LASTNAME ”或“ FIRSTNAME MIDDLENAME LASTNAME ”或“ FIRSTNAME MIDDLENAME1 MIDDLENAME2 LASTNAME ”等。

另一件事是,其中一些名称包含土耳其语和葡萄牙语字母表中的字符,将来可能还包含西里尔字母表中的字符。如何在正则表达式中包含所有这些可能性?如果可以对所使用的表达方式给出解释,那也很好。

PS:我检查了正则表达式以验证姓名和姓氏?但是 1. 仅对 Name Surname 有效,并且 2. 它也包括小写字母。

4

1 回答 1

1

其中之一可能会给您一些想法-

 # --------------------
 # To capture names, first/last name required
 # \s*\p{Lu}+(?:\s+\p{Lu}+)*\s+\p{Lu}+\s*
 # --------------------

 \s*                       # some boundry                  (optional)
 ( \p{Lu}+ )               # (1), upper case first name    (required) 
 (                         # (2), upper case middle names  (optional)
      (?: \s+ \p{Lu}+ )*
 )
 \s+                       # some boundry                  (required) 
 ( \p{Lu}+ )               # (3), upper case last name     (required) 
 \s*                       # some boundry                  (optional)


 # --------------------
 # Or, if no boundry and only first name required
 # \p{Lu}+(?:\s+\p{Lu}+)*
 # --------------------

 \p{Lu}+ 
 (?: \s+ \p{Lu}+ )*


 # --------------------
 # Or, if no boundry and first/last name required
 #\p{Lu}+(?:\s+\p{Lu}+)+
 # --------------------

 \p{Lu}+ 
 (?: \s+ \p{Lu}+ )+
于 2013-09-20T16:20:54.767 回答