我有基于 unicode 的文本,我需要获取前 N 个(假设为 500-1000-1500)个单词的符号数我需要保留所有符号(所以如果字符串在哪里"a b"结果应该是 5)我的想法是使用一些正则表达式匹配前 N 个单词,然后获取匹配结果的长度(符号数)。也许像text.match(/([^\s]+\s+){500}/)但是当涉及到标点符号时它很糟糕事实上,我提出了这个想法。大家怎么看?text.match(/(\w+\s*[^\s\w]*\s+){5}/)
2 回答
![?](http://img1.sycdn.imooc.com/533e50ed0001cc5b02000200-100-100.jpg)
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
这种事情对你有用吗?
const words = text.split(' ').slice(0, 500) const symbolCount = words.reduce((acc, curr) => acc + curr.length + 1, -1)
在空格处拆分文本,然后循环遍历并累积字符数。
![?](http://img1.sycdn.imooc.com/545865890001495702200220-100-100.jpg)
慕桂英3389331
TA贡献2036条经验 获得超8个赞
尝试使其在运行匹配时字符串只有单词
text .replace(/[^a-z0-9 ]/gi,'') .match(/([^\s]+\s+){500}/)
添加回答
举报
0/150
提交
取消