我有一个来自HTML的字符串,没有标签但带有转义符号,例如:
abc&symbol1;def&symbol2;ghi&symbol3;jkl...
在JavaScript或TypeScript中,如何将&symbolN;
等所有序列替换为X
等固定字符,以便我得到:
abcXdefXghiXjkl...
(顺便说一句,目标是获取具有不同HTML转义字符的字符串的长度,例如£
,以便每个字符都计为一个字符)
更新:也许我没有准确解释:symbol1,symbol2,...并不意味着“符号”字符串重复,而是完全不同的符号,不重复,例如“abc£def ghi€...”所以没办法使用像“& symbol;”那样的重复文本模式。
答案 0 :(得分:2)
只是为了计算长度,你可以欺骗,如你所说:
html.replace(/&[^;]+;/, 'X').length
要将HTML正确转换为文本,应该使用HTML解析器,而不是regexp。例如,在浏览器中,
let e = document.createElement('div');
e.innerHTML = html;
let text = e.textContent;