我想允许输入字段中的每个字符除^<>%*()#!?为此我正在使用这种约束。 用于客户端验证
final String regexpattern = "/[^<>%*()#!?]/";
用于服务器端
final Pattern pat = Pattern.compile("/[^<>%*()#!?]/");
但它不起作用
答案 0 :(得分:0)
在客户端,模式应该是
regexpattern = /^[^<>%*()#!?]*$/
服务器
final Pattern pat = Pattern.compile("^[^<>%*()#!?]*$");
答案 1 :(得分:0)
仅适用于一个角色,之后需要添加“+”或“*”。
答案 2 :(得分:0)
模式中应该有^
和$
来指定字符串的开头和结尾,否则它只会验证字符串中至少有一个有效字符,而不是全部字符串中的字符有效。
您还需要字符集的乘数,否则它只匹配一个字符长的字符串。要允许零个或多个字符,请使用*
,并允许使用+
一个或多个字符。您也可以使用范围,例如{2,10}
允许2到10个字符。
集合开头的^
是将其设为负数,因此要禁止^
,您还需要集合中的字符。
斜杠是正则表达式文字的分隔符。您可以将模式编写为字符串,您可以使用它创建正则表达式对象:
pattern = "^[^^<>%*()#!?]+$";
或者将其写为正则表达式文字,它将成为正则表达式对象:
regex = /^[^^<>%*()#!?]+$/;
答案 3 :(得分:-2)
其中一些角色需要在正则表达式中进行转义。
试试这个:
final String regexpattern = /[\^<>%*()#!?]+/ ;
final Pattern pat = Pattern.compile("[\^<>%*()#!?]+") ;