嗨我有两个约束,一个用于地址,另一个用于注释。
对于地址我想只包括小写和大写字母,数字,空格,hypon,'。和逗号,为此我写这些正则表达式patteren。
对于客户端:final String regexp = "/^[a-zA-Z\\d\\s-',.]+$/";
对于服务器端:final Pattern p = Pattern.compile( "([a-zA-Z\\d\\s-',.])+");
对于评论约束我想允许除^<>%*()#!?
之外的每个字符
为此我的正则表达式patteren是为了客户端:
final String regexp = "/[^<>%*()#!?]+$/";
服务器端:
final Pattern p = Pattern.compile("/[^<>%*()#!?]+$/");
但它没有正常工作地址没有任何人可以帮助的空间
答案 0 :(得分:2)
服务器端正则表达式应该是
[a-zA-Z\\d\\s\\-',.]+
-
用于指定范围。如果您只想在字符串中使用-
,请将其视为\\-
答案 1 :(得分:0)
您必须在字符类中转义破折号。没有,范围从space
到single quote
(即:ascii 32到ascii 39)。
[a-zA-Z\\d\\s\\-',.]
您也可以将短划线放在角色类的开头或结尾处:
[a-zA-Z\\d\\s',.-]
或
[-a-zA-Z\\d\\s',.]
根据评论更新:我想允许除&lt;&gt;%*()之外的所有字符#!?
[^<>%*()#!?]
如果要测试字符串中是否存在至少一个无效字符,则不需要锚点或修饰符。
final Pattern p = Pattern.compile("/[^<>%*()#!?]/");