2017-05-04 42 views

回答

0

我嘗試這樣做,它似乎是工作的罰款

[A-Za-zàâéêèìôùûçÀÂÉÊÈÌÔÙÛÇ']+(\\s|\\-[A-Z]+)* 
+0

真的嗎?它如何處理這個名字? 'BreandánDalton' 或者這個? ВладимирИльичУльянов –

0

如果我正確地得到了你的要求,你想一個名字驗證其規則是確保每名包含ATLEAST一個空格或一個連字符( - ) 。你可以使用這個表達式:

^.*(\s|-)+.*$ 
  • (\s|-)+意味着應該有ATLEAST一個空間(\s)或連字符(-
  • .*使前後空間後的任何數目的字符

將匹配成功

Jean-Luc Melenchon 
Xavi Hernandez 
Lionel Messi 
Zlatan Ibrahimovic 

不會低於匹配(因爲他們沒有空格或連字符)

Deco 
Rivaldo 
Kaka 
O'Shea 
0

如果這是一個實驗練習,自己敲出來。如果它將用於真實應用程序,請不要以爲你知道什麼是有效的名稱。

看看 Using RegEx for validating First and Last names in JavaPHP Regex for human names

正如帕斯卡爾·馬丁,後者說,

一天或另一個,你的代碼將滿足它認爲一個名字是「錯誤的」 ......當一個應用程序告訴他「你的名字無效」時,你會如何反應?