2013-10-03 105 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

相關問題