2015-03-02 95 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