ama*_*mal 32 java regex validation
我希望正则表达式只验证字母和空格.基本上这是验证全名.例如:史蒂夫柯林斯先生或史蒂夫柯林斯 我试过这个正则表达式."[1 - ZA-Z] + \.?" 但没有工作.有人可以帮助我,请使用Java.
public static boolean validateLetters(String txt) {
String regx = "[a-zA-Z]+\\.?";
Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE);
Matcher matcher = pattern.matcher(txt);
return matcher.find();
}
Run Code Online (Sandbox Code Playgroud)
ste*_*ema 84
关于什么:
验证名称是一个难题,因为有效名称不仅包含字母AZ.
至少你应该对字母使用Unicode属性并添加更多特殊字符.第一种方法可以是例如:
String regx = "^[\\p{L} .'-]+$";
Run Code Online (Sandbox Code Playgroud)
\\p{L}是一个Unicode字符属性,匹配任何语言的任何类型的字母
Rah*_*san 14
尝试这个正则表达式(允许字母,点,空格):
"^[A-Za-z\s]{1,}[\.]{0,1}[A-Za-z\s]{0,}$" //regular
"^\pL+[\pL\pZ\pP]{0,}$" //unicode
Run Code Online (Sandbox Code Playgroud)
这也将确保DOT永远不会出现在名称的开头.
小智 12
对于那些使用java/android并努力解决这个问题的人来说:
"^\\p{L}+[\\p{L}\\p{Z}\\p{P}]{0,}"
Run Code Online (Sandbox Code Playgroud)
这适用于像
小智 5
您甚至可以尝试使用此表达式^[a-zA-Z\\s]*$来检查仅包含字母和空格的字符串(没有别的).
对我来说它有效.希望它也适合你.
或者通过这段代码:
CharSequence inputStr = expression;
Pattern pattern = Pattern.compile(new String ("^[a-zA-Z\\s]*$"));
Matcher matcher = pattern.matcher(inputStr);
if(matcher.matches())
{
//if pattern matches
}
else
{
//if pattern does not matches
}
Run Code Online (Sandbox Code Playgroud)
请试试这个正则表达式(只允许字母和空格)
“[a-zA-Z][a-zA-Z]*”
如果你想要它用于 IOS 那么
NSString *yourstring = @"hello";
NSString *Regex = @"[a-zA-Z][a-zA-Z ]*";
NSPredicate *TestResult = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",Regex];
if ([TestResult evaluateWithObject:yourstring] == true)
{
// validation passed
}
else
{
// invalid name
}
Run Code Online (Sandbox Code Playgroud)