我需要一个自定义验证程序来禁止来自textarea字段的禁止单词的特定列表。 我完全需要这种类型的实现,我知道让用户键入查询的一部分在逻辑上是不正确的,但这正是我所需要的。
我尝试了regExp,但它的行为异常。
我的RegExp
<footer>
我的验证者
<footer>
我的formControl:
/(drop|update|truncate|delete|;|alter|insert)+./gi
它仅在某些情况下有效,而且我不明白为什么相同的字符串一次可以工作,并且如果我删除一个字符并重写它,或者有时如果我键入一个空白,则验证程序会返回OK,则该字符串不起作用。
答案 0 :(得分:1)
这里有几个问题:
g
中使用全局RegExp#test
修饰符会导致意外的交替结果,并且在有效匹配后移动正则表达式索引的类似方法必须将其删除.
最后需要除换行符以外的任何1个字符,因此必须将其删除。使用
/drop|update|truncate|delete|;|alter|insert/i
或者,要匹配整个单词,请使用
/\b(?:drop|update|truncate|delete|alter|insert)\b|;/i
这样,insert
中的insertion
和drop
中的dropout
不会被“捕获”(=匹配)。
请参见regex demo。
答案 1 :(得分:-1)
向用户提供这种功能不是一个好主意