2013-04-24 99 views
1
var tableData = '<tr id=7020934><td>7020934</td><td>anuradha</td><td><a href="#" class="delete">x</a></td></tr><tr id=8736519><td>8736519</td><td>Rohan</td><td><a href="#" class="delete">x</a></td></tr>'; 

我想用給定的id刪除tr標記。正則表達式從javascript中刪除特定tr標記

我寫了下面的正則表達式,但它返回假每次

var regex='<tr id=7020934.+?<\/tr>'; 
alert(/regex/.test(tableData)); 

但如果我使用

alert(/<tr id=7020934.+?<\/tr>/.test(tableData)); 

I M在得到警告框真。 我無法理解這兩種方法之間的區別。

由於我的ID是動態生成的我想採取第一種辦法

回答

3

你應該做

var regex=/<tr id=7020934.+?<\/tr>/; 
alert(regex.test(tableData)); 

問題是//之間的任何東西作爲正則表達式,而不是變量處理。

如果你想基於一個變量來構造一個正則表達式:

var regex = new RegExp(pattern,modifiers) 

所以你的情況應該是:

var regex='<tr id=7020934.+?<\/tr>'; 
alert(new RegExp(regex).test(tableData)); 

基本上你能想到的

var regex = /pattern/modifiers; 

var regex = new RegExp(pattern,modifiers); 
+1

其實我想做類似 – sparkle 2013-04-24 15:24:38

+0

var regex ='';這就是爲什麼我把正則表達式放在引號 – sparkle 2013-04-24 15:25:52

+0

但是在第二種情況下,你會說'/variableName/.test ...',其中'variableName'不作爲變量被計算,而是作爲一個字符串。查看更新的答案:我認爲你要找的是'RegExp' – Matyas 2013-04-24 15:30:15

相關問題