2013-10-03 62 views
6

这里的RegEx测试是什么?这个Javascript语句(正则表达式)是什么意思?

function chksql(){  
    if (/^\s*(?:delete|drop|truncate|alter)/.test(v)) return false;  
} 

我只知道它与正则表达式混合在一起,但无法弄清楚它的含义。

+0

更多信息[这里](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions) – aug

+0

请链接做这个网站,因为在客户端检查这个垃圾是一个等待发生的“drop table” – mkoryak

+0

好吧,至少这个代码会让它更难一点。您可能不得不说“DROP TABLE”! just_a_newbie,我在这里指的是这个正则表达式只匹配*小写*字,但是SQL关键字是大小写独立的,事实上传统上是用大写字母写的。 –

回答

2

这些天有很多用于测试和探索正则表达式的在线工具。

我喜欢的是debuggex.com。下面是它会显示你的正则表达式:

^\s*(?:delete|drop|truncate|alter) 

Regular expression visualization

Debuggex Demo

要解释的是,你仍然需要做的有点像发现什么^\s平均功课,但“铁路图”有助于显示正则表达式正在测试的内容。只需按照行,看看它会匹配。您也可以尝试在上面的链接中输入测试字符串,以查看它们是如何匹配(或不匹配)的。

另一个好地方是regex101.com。这里是your regular expression there。他们给你一个关于正则表达式正在寻找的英文描述。

另外,希望mkoryak的建议,试图消毒客户端上的SQL!正则表达式

enter image description here

相关问题