我想阻止在我的spring mvc项目中输入一些特殊字符" < >
。
@Pattern(regexp="[^&]")
它工作正常,但我不知道为什么。 (我仍然为正则表达式找到了很好的参考)
答案 0 :(得分:1)
否定字符类
[^&]
是一个否定的字符类,匹配一个字符,而不是&
(^
是否为负数)<
,>
或"
的字符串,将它们添加到否定字符类并使用锚点:^
锚点断言我们位于字符串的开头$
锚点断言我们位于字符串的末尾像这样:
^[^<>"]+$
使用matches
方法,您不需要锚点:
if (subjectString.matches("[^<>\"]+")) {
// It matched!
}
else { // nah, it didn't match...
}
答案 1 :(得分:1)
它完全正常。
我doubt老实说..你的否定角色类匹配任何角色除了:&
,如果你想阻止你指定的其他角色,请将它们添加到你的上课也是如此。
[^&"<>] # any character except: '&', '"', '<', '>'
如果您想接受&
,请将其从班级中删除。
[^"<>]
您可能还想使用quantifier来匹配多个匹配项。