Java 正则表达式验证仅适用于一个字符
我想检查userInput是否没有特殊字符,以下是我的代码:Java 正则表达式验证仅适用于一个字符,java,regex,oop,spring,validation,Java,Regex,Oop,Spring,Validation,我想检查userInput是否没有特殊字符,以下是我的代码: public class ValidateHelper { public boolean userInputContainsNoSpecialCharacters(String input){ Pattern p = Pattern.compile("[a-zA-Z_0-9 ]"); Matcher m = p.matcher(input); boolean b = m.matche
public class ValidateHelper {
public boolean userInputContainsNoSpecialCharacters(String input){
Pattern p = Pattern.compile("[a-zA-Z_0-9 ]");
Matcher m = p.matcher(input);
boolean b = m.matches();
if (b)
return true;
else
return false;
}
}
如果我在textfield中键入一个字符->在textfield中键入“a”->该方法将返回true,则此操作有效
textfield->method中的“ab”返回false。
有人能帮忙吗?
贝斯特·丹尼尔您应该使用以下正则表达式:
[A-Za-z0-9]+
您应该使用以下正则表达式:
[A-Za-z0-9]+
将“[a-zA-Z_0-9]”更改为“[a-zA-Z_0-9]+”
+与该组中的“一个或多个”匹配。将“[a-zA-Z_0-9]”更改为“[a-zA-Z_0-9]+”
+与该组的“一个或多个”匹配。模式p=Pattern.compile(“[a-zA-Z_0-9]+”)代码>模式p=Pattern.compile(“[a-zA-Z_0-9]+”)
将模式从[a-zA-Z_0-9]
更改为^[a-zA-Z_0-9]*$
(对于0个或更多有效字符)或^[a-zA-Z_0-9]+$
,如果要确保它们输入值
+
表示一次或多次重复
*
表示0次或更多次重复
^
和$
分别表示行的开始和结束。如果要确保输入值,请将模式从[a-zA-Z_0-9]
更改为^[a-zA-Z_0-9]*$
(对于0个或更多有效字符)或^[a-zA-Z_0-9]+$
+
表示一次或多次重复
*
表示0次或更多次重复
^
和$
分别表示行的开始和结束。这是因为您使用的是[]
。如果要捕获有限数量的字符,则需要修改任意数量或字符范围
[a-zA-Z_0-9 ]+ //1 or more characters
[a-zA-Z_0-9 ]{1,5} //1 - 5 characters
这是因为您使用的是[]
。如果要捕获有限数量的字符,则需要修改任意数量或字符范围
[a-zA-Z_0-9 ]+ //1 or more characters
[a-zA-Z_0-9 ]{1,5} //1 - 5 characters
你忘了OP在正则表达式中的空格你忘了OP在正则表达式中的空格