RegEx在这里测试什么?
function chksql(){
if (/^\s*(?:delete|drop|truncate|alter)/.test(v)) return false;
}
我只是知道它与正则表达混合在一起,但无法弄清楚它的含义。
答案 0 :(得分:5)
表示检查v
是否为以零个或多个空格字符开头的字符串,后跟删除或删除或截断< / strong>或更改
因此如果v
为" alter"
,则会返回false。
请参阅文档:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
我应该补充说,在客户端检查这种情况是一个非常糟糕的主意。它将被规避。
答案 1 :(得分:2)
目前,有很多很好的在线工具可用于测试和探索正则表达式。
我喜欢的是debuggex.com。以下是它为正则表达式显示的内容:
^\s*(?:delete|drop|truncate|alter)
要解释这一点,你仍然需要做一些功课,比如找出^
和\s
的含义,但是“铁路图”有助于显示正则表达式的测试内容。只需按照线条查看它将匹配的内容。您也可以尝试在上面的链接中键入测试字符串,以查看它们是如何匹配(或不匹配)。
另一个好网站是regex101.com。这是your regular expression there。它们为您提供正则表达式所需内容的英文描述。
另外,请注意mkoryak关于尝试在客户端上清理SQL的建议!