java - 正则表达式插入符号和符号有效,但不知道为什么

标签 java regex validation xss

我想阻止输入一些特殊字符" < >在我的 spring mvc 项目中。

    @Pattern(regexp="[^&]")

它工作得很好,但我不知道为什么。 (我仍在寻找有关正则表达式的良好引用)

最佳答案

否定字符类

  • [^&]是一个否定字符类,与一个字符匹配,该字符不是 & (^ 是负数)
  • 仅包含不包含 < 的字符串, >" ,将它们添加到否定字符类并使用 anchor :
  • ^ anchor 断言我们位于字符串的开头
  • $ anchor 断言我们位于字符串的末尾

像这样:

^[^<>"]+$ 

matches方法,你不需要 anchor :

if (subjectString.matches("[^<>\"]+")) {
    // It matched!
  } 
else {  // nah, it didn't match...  
     } 

关于java - 正则表达式插入符号和符号有效,但不知道为什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24687387/

相关文章:

asp.net-mvc - 如何从不在数据库表中的模型创建验证字段?使用 MVC4

javascript - 为什么 isNaN(123.) 返回 false?

java - android-java 如何取消异步任务

java - 图片翻转且无法缩放

regex - 获取模式之间的第二次出现

python - 修剪数据集词汇

java - 如何将菜单设置为 AppBarLayout

java - 在实例化阶段之前/期间检索 Bean 类

java - 使用正则表达式仅在循环中提取链接

php - 在 CakePHP 中验证和转换十进制值