Javascript 将数组分组为两个字,而不是一个字
下面的代码:当一个单词被写入时,它将其存储为自己的数组,这意味着每个单词都是自己的数组,然后检查是否再次出现 我想要的是:我不希望它创建一个单词数组(在空格键被点击后),而是希望它在写了两个单词后再创建 IE:而不是我写“Hello”+空格键,代码创建“Hello”作为数组。我希望它等到我写了“hello my”+空格键,然后用这两个数字创建一个数组 我猜这和正则表达式有关吗? 我尝试过很多不同的方法(有点新手),但我不明白如何将两个单词组合在一起,而不是一个单词Javascript 将数组分组为两个字,而不是一个字,javascript,regex,Javascript,Regex,下面的代码:当一个单词被写入时,它将其存储为自己的数组,这意味着每个单词都是自己的数组,然后检查是否再次出现 我想要的是:我不希望它创建一个单词数组(在空格键被点击后),而是希望它在写了两个单词后再创建 IE:而不是我写“Hello”+空格键,代码创建“Hello”作为数组。我希望它等到我写了“hello my”+空格键,然后用这两个数字创建一个数组 我猜这和正则表达式有关吗? 我尝试过很多不同的方法(有点新手),但我不明白如何将两个单词组合在一起,而不是一个单词 const count =
const count = (text) => {
const wordRegex = new RegExp(`([\\p{Alphabetic}\]+)`, 'gu');
let result;
const words = {};
while ((result = wordRegex.exec(text)) !== null) {
const word = result[0].toLowerCase();
if (!words[word]) {
words[word] = [];
}
words[word].push(result.index);
words[word].push(result.index + word.length);
}
return words;
};
你可以用
const wordRegex = /\p{Alphabetic}+(?:\s+\p{Alphabetic}+)?/gu;
详细信息
-1+字母字符\p{字母}+
-可选的序列:(?:\s+\p{字母}+)
-1+空格\s+
-1+字母字符\p{字母}+
const count=(文本)=>{
const wordRegex=/\p{字母}+(?:\s+\p{字母}+)/gu;
让结果;
常量字={};
while((result=wordRegex.exec(text))!==null){
const word=result[0]。toLowerCase();
如果(!单词[单词]){
单词[单词]=[];
}
words[word].push(result.index);
words[word].push(result.index+word.length);
}
返回单词;
};
log(count(“abc def ghi”)
Tryconst wordRegex=/\p{alphatic}+(?:\s+\p{alphatic}+)/gu代码>是否可以将其转换为新的RegExp对象?正如在后面的代码中一样,它使用该对象的函数wordRegex
在这里是一个RegExp对象。这里不需要构造函数,因为它是一个静态模式,它不是由任何变量组成的。我认为它可以工作!你能给我解释一下吗?:)最后一个问题:将单词分组为3而不是2?@CevinThomas Replace?
(这实际上等于{0,1}
),最后是{0,2}
。非常感谢!我非常感激!