2011-07-17 127 views
1

可能重複:
PHP regex to check a English namePHP正則表達式檢查名稱

我想寫一個正則表達式,將檢查名稱字段,我有一個用戶。

我想它來檢查

Firstname SPACE Middle initial SPACE Last name. 

我知道對於中初使奇異的信件,我需要[a-z],但我不知道如何爲姓氏和名字和做充分的話之間的空間。

+0

每次都需要三個部分嗎? –

+0

'[a-z]'不匹配中間首字母(因爲它們通常是大寫!),它不會匹配任何有重音的。 – Quentin

+3

或者[Regex從「Aardal,Prof.dr.ir. K.I. (凱倫)「](http://stackoverflow.com/questions/5351234/regex-get-first-name-out-of-aardal-prof-dr-ir-ki-karen) - 或者[正則表達式解析名字和姓氏](http://stackoverflow.com/questions/5994870/regex-to-parse-first-and-last-name) - 這似乎也很相似:[我如何驗證名稱字段只允許一個空格,並以PHP中的字母開頭和結尾?](http://stackoverflow.com/questions/6118670/how-can-i-validate-a-name-field-to-allow-only-一空間和開始與結束與a) – hakre

回答

0
^[A-Za-z]+\s[A-Za-z]\s[A-Za-z]+$ 
1

名稱可以包含-符號。 /^[\-a-z]+\s[\-a-z]\s[\-a-z]+$/i

2

您可能需要使用str_word_count()以使您的自我更輕鬆。

此外,要檢查名稱,您可能想要添加更多的字母而不僅僅是a-z,您應該看看this question中的答案。