用于validation全名的Java Regex仅允许空格和字母

我希望正则表达式只validation字母和空格。 基本上这是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(); } 

关于什么:

  • 彼得·穆勒
  • 弗朗索瓦·奥朗德
  • 帕特里克奥布莱恩
  • Silvana Koch-Mehrin

validation名称是一个难题,因为有效名称不仅包含字母AZ。

至少你应该对字母使用Unicode属性并添加更多特殊字符。 第一种方法可以是例如:

 String regx = "^[\\p{L} .'-]+$"; 

\\p{L}是一个Unicode字符属性 ,可以匹配任何语言的任何类型的字母

尝试这个正则表达式(允许字母,点,空格):

 "^[A-Za-z\s]{1,}[\.]{0,1}[A-Za-z\s]{0,}$" //regular "^\pL+[\pL\pZ\pP]{0,}$" //unicode 

这也将确保DOT永远不会出现在名称的开头。

对于那些使用java / android并努力解决这个问题的人来说:

 "^\\p{L}+[\\p{L}\\p{Z}\\p{P}]{0,}" 

这适用于像

  • JoséBrasão

您甚至可以尝试使用此表达式^[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 } 

请试试这个正则表达式(只允许使用字母和空格)

“[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 } 

只接受带空格的角色: –

  if (!(Pattern.matches("^[\\p{L} .'-]+$", name.getText()))) { JOptionPane.showMessageDialog(null, "Please enter a valid character", "Error", JOptionPane.ERROR_MESSAGE); name.setFocusable(true); } 

仅匹配字母和空格的正则表达式模式:

 String regexUserName = "^[A-Za-z\\s]+$"; 

要仅validation字母和空格,请尝试此操作

 String name1_exp = "^[a-zA-Z]+[\-'\s]?[a-zA-Z ]+$"; 

@amal。 此代码符合您的要求。 只允许中间的字母和空格,没有数字。 文本以任何字母开头,并且只能在其间有空格。 “^”表示行的开头,“$”表示行的结尾。

 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(); } 

我个人的选择是: ^\p{L}+[\p{L}\p{Pd}\p{Zs}']*\p{L}+$|^\p{L}+$ ,其中:

^\p{L}+ – 它应该以1个或多个字母开头。

[\p{Pd}\p{Zs}'\p{L}]* – 它可以包含字母,空格字符(包括不可见),短划线或连字符以及’任意顺序0次或更多次。

\p{L}+$ – 它应该以1个或更多字母结束。

|^\p{L}+$ – 或者它只包含1个或多个字母(这样做是为了支持单个字母的名称)。

支持点(句号)被删除,例如英国英语中可以放弃先生或夫人。

validation以下值: “”,“FIR”,“FIR”,“FIR LAST”

 /^[Az]*$|^[Az]+\s[Az]*$/ 

这对我来说有助于validationbootstrap

 $(document).ready(function() { $("#fname").keypress(function(e) { var regex = new RegExp("^[a-zA-Z ]+$"); var str = String.fromCharCode(!e.charCode ? e.which : e.charCode); if (regex.test(str)) { return true; } 

看一下这个。

 String name validation only accept alphabets and spaces public static boolean validateLetters(String txt) { String regx = "^[a-zA-Z\\s]+$"; Pattern pattern = Pattern.compile(regx,Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(txt); return matcher.find(); }