【发布时间】:2021-06-07 15:35:42
【问题描述】:
我有以下文字:
Send to <a class="tipo9" id="1">Example Mark</a> and <a class="tipo0" id="3">Testing James</a> a new Document
并想获取以下代码:
Send to <per>1</per> and <per>3</per> a new Document
标签之间的数字是id号。
我找到了一个非常复杂的解决方案,例如:
function convert(f) {
var str=f;
str=str.replaceAll('<a class="', '[per]');
str=str.replaceAll('/a>', '[/per]');
str=str.replaceAll(/tipo\d/g, '');
str=str.replaceAll(/['"]+/g, '');
str=str.replaceAll('"', '');
str=str.replaceAll(' id=', '');
str=str.replaceAll(/\s*\>.*?\<\s*/g, "")
str=str.replaceAll('[per]', '<per>');
str=str.replaceAll('[/per]', '</per>');
str=str.trim();
document.getElementById('testoHTML').value=str;
}
但它会带来不同的问题。我知道它应该存在另一种使用正则表达式的解决方案,但我无法获得有效的结果。
希望能找到一些好的解决方案:)
【问题讨论】:
-
为什么不把 HTML 放到一个文档片段中,用 DOM 代替字符串替换呢?
-
Java 和这个有什么关系?
-
选择元素并使用replaceWith
标签: javascript regex replaceall