我已经使用此正则表达式来检查用户全名。但它也会在用户名的最后一个位置接受数字和特殊字符。

情况:


Shivkant Dohaliya-是
Shivkant Dohaliya1-是
Shivkant Dohaliya @-TRUE
Shivkant Dohaliya!1-假
Shivkant Dohaliya1#-虚假

public void usern()
{
    username="^([a-zA-Z]+[ a-zA-Z]+)$";
    pattern=Pattern.compile(username);
    matcher=pattern.matcher(e1.getUname());
    if(matcher.matches()) {
       e1.textField1.setBorder(BorderFactory.createLineBorder(Color.GREEN));
    } else {
        e1.textField1.setBorder(BorderFactory.createLineBorder(Color.RED));
    }
}



我希望对于案例2和案例3,它也应该显示红色边框。

最佳答案

也许您应该改用以下模式:

username="^((?:[a-Z][a-Z]+))(\s)((?:[a-Z][a-Z]+))$";


要么

username="^(\w+)(\s)(\w+)$";


仅用于测试两个以空格分隔的单词。

07-26 00:06