繁体   English   中英

正则表达式替换多个字符

[英]Regex to replace multiple characters

我有一个字计数器功能,但是它不能解决标点符号使用率不高的人的问题,例如:

“你好,世界”

那只能算作1个字。 而是应将其视为2个字。 这就是为什么我使用此RegEx;

negWords.replace(/[,.!?;\s]+/g,' ');

效果很好,但是如果人们使用双倍空格或标点符号,也可以将其视为单词。

“你好,”算作2个字,

但不会将出现的次数多于1个字。

'hello ,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,'仍然算作2个单词。

编辑更多上下文。

要从文字中获取文字,您可以

var words = text.split(/\W+/).filter(Boolean);

计数是words.length

这里的filter(Boolean)调用从数组中删除空字符串。

+符号表示它应接受组中每个字符中的一个或多个。 如果只想要一个,则需要删除+

negWords.replace(/[,.!?;\s]/g,' ');

如果要在任意数量的空格后捕获一个标点符号或空格,请尝试以下操作:

negWords.replace(/[,.!?;\s]\s*/g,' ');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM