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));

アラートボックスで真実になっています。2つのアプローチの違いを理解できません。

私の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 に答える