我正在尝试编写一个正则表达式,用于在 JavaScript 命令中准确地计算文本区域中单词的数量。
我找到的其中一种解决方案如下:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\b\w+\b/).length -1;
但这不包括任何非拉丁字符(例如:西里尔文,韩文字等);它完全跳过它们。
我还整理了另一个:
document.querySelector("#wordcount").innerHTML = document.querySelector("#editor").value.split(/\s+/g).length -1;
但是,这只有在文档以空格字符结尾时才能准确计数。如果在被计数的值后附加了一个空格字符,则即使文档为空,也会计算1个单词。此外,如果文档以空格字符开头,则会计算一个多余的单词。
是否有一个正则表达式可以将单词精确计数,而不受输入方法的影响?
document.querySelector("#wordcount")
可以写成document.getElementById("wordcount")
,这样可能更适用于跨浏览器或更快;不太可能不兼容或更慢。 - T.J. Crowder