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 标签。

我写了以下正则表达式,但每次都返回 false

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

但是如果我使用

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

我在警报框中变得真实。我无法理解这两种方法之间的区别。

由于我的 ID 是动态生成的,我想采取第一种方法

4

1 回答 1

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);
于 2013-04-24T15:22:56.773 回答