如何计算除了单词之外的每个字符?

时间:2017-11-09 14:45:59

标签: javascript regex

我需要计算没有空格和
标签的字符串长度。 我的JS模式不起作用,因为它也不计算'b'和'r'字符。 我的代码在这里:

content.match(/[^\s^<br />]/g).length

如何解决?

2 个答案:

答案 0 :(得分:1)

而不是匹配,只需使用.replace()即可。 Match总是返回一个数组,并且因为Javascript中的原语是不可变的,所以你可以使用replace()轻松创建一个没有这些字符的新字符串。

let newString = oldString.replace(/\s/g, '') //replace all whitespace with empty spaces

newString = newString.replace(/<br\s*\/?>/g, '') //replace <br> and <br /> with empty spaces

然后只做newString.length

将来,请尝试使用https://regexr.com来测试正则表达式匹配

答案 1 :(得分:0)

如果要删除所有HTML标记(不只是<br/>),可以将字符串作为HTML添加到新元素中,抓取textContent,然后运行正则表达式匹配这一点。

let str = '<div>Hallo this is a string.</div><br/>';
let el = document.createElement('div');
el.innerHTML = str;
let txt = el.textContent;
let count = txt.match(/[^\s]/g).join('').length; // 19

<强> DEMO