Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取前N个单词的子字符串_Javascript_String - Fatal编程技术网

Javascript 获取前N个单词的子字符串

Javascript 获取前N个单词的子字符串,javascript,string,Javascript,String,我有基于unicode的文本,我需要得到前N个(比如500-1000-1500)单词的符号数 我需要保留所有符号(因此如果字符串位于 “ab” 结果应该是5) 我的想法是使用一些正则表达式匹配前N个单词,然后得到匹配结果的长度(符号数) 也许像 text.match(/([^\s]+\s+){500}/) 但当涉及到标点符号时,它就糟透了 事实上,我想出了这个主意。你们觉得怎么样 text.match(/(\w+\s*[^\s\w]*\s+){5}/) 这类事情对你有用吗 const wor

我有基于unicode的文本,我需要得到前N个(比如500-1000-1500)单词的符号数

我需要保留所有符号(因此如果字符串位于

“ab”

结果应该是5)

我的想法是使用一些正则表达式匹配前N个单词,然后得到匹配结果的长度(符号数)

也许像

text.match(/([^\s]+\s+){500}/)
但当涉及到标点符号时,它就糟透了

事实上,我想出了这个主意。你们觉得怎么样

text.match(/(\w+\s*[^\s\w]*\s+){5}/)

这类事情对你有用吗

const words=text.split(“”).slice(0500)
const symbolCount=字数减少((acc,curr)=>acc+curr.length+1,-1)

在空格处拆分文本,然后循环并累积字符计数。

尝试使其在运行匹配时仅包含单词

文本
.更换(/[^a-z0-9]/gi')
.match(/([^\s]+\s+{500}/)

先去掉标点符号?字符串有多大?如果你能负担得起在它上面调用split(“”),那么你就可以从BlackBerries中删除种子字符串可以是任意大小的(长度为200-20000个单词),为什么“ab”会是5?不是3吗?对不起,编辑器删除了a和b之间的多个空格。将立即更新对不起,我询问时不清楚。我需要保留所有符号(因此,如果字符串是“a b”,则应为5谢谢。但我认为它不起作用,因为文本可以是“hello+three spaces+。+hello1”@AmeliaSeila我很确定这会起作用。它给出了包含所有空格的长度。我认为你应该在说它不起作用之前先试试这个例子。@BrandonDyer,对不起,但它不起作用;(字符串:“hello1 hello2 hello3 hello4.hello5 hello6 hello7 hello8”,字数:5,结果:29,预期:36@AmeliaSeila它确实有效。我对它进行了测试。
“hello1 hello2 hello3 hello4.hello5 hello6 hello7 hello8”的结果是预期的57对不起,我问的时候不清楚。我需要保留所有符号(因此,如果字符串是“a+3空格+b”,那么应该是5