Javascript Regex-从一系列标签中提取特定的html标签



我有一个包含HTML TD标记的字符串。我想构造一个正则表达式来获取具有innerHTML"Number"的TD

示例:

以下是整个字符串

var rows = `<td width="69" style="white-space:normal">Name</td>
<td width="70" style="white-space:normal;border-left:none">Number</td>
<td width="64" style="white-space:normal;border-left:none">Type</td>`;

Regex应为:若我把"Number"放在正则表达式中,第二个TD标记应该被提取。若我输入"Name",第一个TD标签应该会被取出。

谢谢你,

https://regex101.com/r/gsXlab/1

/<td[^>]+?>Number</td>/g

试试这个。但下次请先尝试一下,并用您尝试过的代码提出您的问题。

使用DOM而不是RegEx

Javascript.querySelector通过innerTEXT 查找

例子并不难找到

注意,您可以在函数外创建片段以重用它

var cells = `<td width="69" style="white-space:normal">Name</td>
<td width="70" style="white-space:normal;border-left:none">Number</td>
<td width="64" style="white-space:normal;border-left:none">Type</td>`;
function contains(selector, text) {
var fragment = document.createElement("TR");
fragment.innerHTML=cells;
var elements = fragment.querySelectorAll(selector);
return Array.prototype.filter.call(elements, function(element){
return RegExp(text).test(element.textContent);
});
}
console.log("Name",contains('td', 'Name')[0]); // rmeove [0] to get more than one
console.log("Number",contains('td', 'Number')[0]);
console.log("Type",contains('td', 'Type')[0]);

最新更新