2013-04-24 81 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