仅使用javascript替换第一次出现

时间:2017-11-28 00:57:32

标签: javascript

我有一个来自HTML的字符串,没有标签但带有转义符号,例如:

abc&symbol1;def&symbol2;ghi&symbol3;jkl...

在JavaScript或TypeScript中,如何将&symbolN;等所有序列替换为X等固定字符,以便我得到:

abcXdefXghiXjkl...

(顺便说一句,目标是获取具有不同HTML转义字符的字符串的长度,例如£,以便每个字符都计为一个字符)

更新:也许我没有准确解释:symbol1,symbol2,...并不意味着“符号”字符串重复,而是完全不同的符号,不重复,例如“abc£def ghi€...”所以没办法使用像“& symbol;”那样的重复文本模式。

1 个答案:

答案 0 :(得分:2)

只是为了计算长度,你可以欺骗,如你所说:

html.replace(/&[^;]+;/, 'X').length

要将HTML正确转换为文本,应该使用HTML解析器,而不是regexp。例如,在浏览器中,

let e = document.createElement('div');
e.innerHTML = html;
let text = e.textContent;