簡體   English   中英

將變量添加到regexp匹配javascript

[英]Add variable to regexp match javascript

如何在regexp匹配javascript中添加變量?

var element = "table",
    attr = "id",
    elementId = "listtable";

var res = '<table id="listtable"><tr>test</tr></table>'.match(new RegExp('<table(.+?)>(.+?)\</table>', 'gi'));
console.log(res);

結果: ["<table id="listtable"><tr>test</tr></table>"]

如何獲得這樣的結果: ["<table id="listtable"><tr>test</tr></table>", "<tr>test</tr>"]

提前致謝。

您可以通過刪除全局標志來做到這一點。 如果在正則表達式中指定全局標志,則返回的數組將僅包含匹配項數組。 如果不使用全局標志,它將返回整個匹配項及其每個捕獲組的數組。

對於您的情況,您將需要以下內容:

var res = '<table id="listtable"><tr>test</tr></table>'.match(new RegExp('<table(.+?)>(.+?)\</table>', 'i'));
console.log(res); //["<table id="listtable"><tr>test</tr></table>", " id="listtable"", "<tr>test</tr>"]

所以這只是在標記中沒有g

您如何使用本機HTML解析器而不是正則表達式? 您可以執行以下操作:

var str = '<table id="listtable"><tr>test</tr></table>';
var div = document.createElement("div");
div.innerHTML = str;

// A tbody is automatically created in a table
// You could also do tr.outerHTML if you know there will be a tr
var content = div.querySelector("tbody").innerHTML; // <-- "<tr>test</tr>"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM