输入字符串:
<TagId>ABC</TagId><TagId>PQR</TagId></Tags>
所需输出:
ABC
PQR
迄今为止的尝试:
var myString = "<TagId>ABC</TagId><TagId>PQR</TagId></Tags>";
var count = ((myString.match(new RegExp("<TagId>", "g")) || []).length);
console.log(count); //Getting correct count of 2
for(var i =1;i<=count;i++){
var val = myString.substring(
myString.lastIndexOf("<TagId>") + 7,
myString.lastIndexOf("</TagId>")
);
}
console.log(val);
上述代码段的实际结果:
PQR
您可以匹配后面跟有</TagId>
:的非>
字符
const str = '<TagId>ABC</TagId><TagId>PQR</TagId></Tags>';
console.log(str.match(/[^>]+(?=</TagId>)/g));
[^>]+(?=</TagId>)
表示:
[^>]+
-匹配一个或多个非>
的字符(?=</TagId>)
-比赛结束后:</TagId>
-</TagId>
已找到
如果您有领先的<Tags>
,则可以更优雅地将其解析为XML:
const str = '<Tags><TagId>ABC</TagId><TagId>PQR</TagId></Tags>';
const doc = new DOMParser().parseFromString(str, 'text/xml');
for (const tagId of doc.querySelectorAll('TagId')) {
console.log(tagId.textContent);
}
我认为通过tagName循环可以检索内部文本内容。
var x = document.getElementsByTagName("TagId");
for(let i = 0 ; i < x.length; i++) {
console.log(x[i].textContent)
}
<TagId>ABC</TagId><TagId>PQR</TagId></Tags>