2015-03-02 97 views
-1

我想用java正則表達式來檢查用戶名和姓。 我使用這個模式Java unicode名稱正則表達式

private static final Pattern CHECK_NAME_FIELD_PATTERN = Pattern.compile("\\w+", 
     Pattern.UNICODE_CHARACTER_CLASS); 

public static boolean checkNameField(String name){ 
    return CHECK_NAME_FIELD_PATTERN.matcher(name).matches(); 
} 

checkNameField("234523")返回true。

+0

'\ d'應該可以代替'\ w' – mroemore 2015-03-02 16:41:56

回答

1

它對數字返回true,因爲\w也會匹配數字。

private static final Pattern CHECK_NAME_FIELD_PATTERN = Pattern.compile("\\p{L}+", 
    Pattern.UNICODE_CHARACTER_CLASS); 

\\p{L}匹配來自任何語言的任何類型的字母。

+0

我也想檢查unicode名稱。 [A-Za-z] +會工作嗎? – 2015-03-02 16:45:37

+0

嘗試'「\\ p {L} +」' – 2015-03-02 16:46:19