木川 *_* 炎星 14 javascript regex word-count
我正在尝试为JavaScript命令组合一个正则表达式,以准确计算textarea中的单词数.
我发现的一个解决方案如下:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\b\w+\b/).length -1;
Run Code Online (Sandbox Code Playgroud)
但这不算任何非拉丁字符(例如:西里尔字母,韩文字母等); 它完全跳过它们.
我放在一起的另一个:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\s+/g).length -1;
Run Code Online (Sandbox Code Playgroud)
但是,除非文档以空格字符结尾,否则这不会准确计算.如果空格字符附加到计数值,即使空文档也计算1个单词.此外,如果文档以空格字符开头,则计算无关的单词.
是否有正则表达式,我可以在此命令中准确计算单词,无论输入方法如何?
Dav*_*ang 36
这应该做你想要的:
value.match(/\S+/g).length;
Run Code Online (Sandbox Code Playgroud)
您可以匹配任何非空白字符序列,而不是拆分字符串.
如果需要,还可以轻松提取每个单词;)
尝试计算任何不是空格和字边界的东西:
value.split(/\b\S+\b/g).length
Run Code Online (Sandbox Code Playgroud)
您也可以尝试使用unicode范围,但我不确定以下是否完整:
value.split(/[\u0080-\uFFFF\w]+/g).length
Run Code Online (Sandbox Code Playgroud)