Javascript 查找字符串中字符的第二个匹配项

Javascript 查找字符串中字符的第二个匹配项,javascript,string,Javascript,String,我听说JavaScript有一个名为search()的函数,可以在另一个字符串(B)中搜索一个字符串(我们称之为a),它将返回在B中找到a的第一个位置 var str = "Ana has apples!"; var n = str.search(" "); 代码应返回3作为在str中找到空格的第一个位置 我想知道是否有一个函数可以在我的字符串中找到下一个空格 例如,我想找到字符串中第一个单词的长度,如果我知道它的起始位置和结束位置,我可以很容易地做到这一点 如果有这样一个函数,在这方面还有比

我听说JavaScript有一个名为
search()
的函数,可以在另一个字符串(B)中搜索一个字符串(我们称之为a),它将返回在B中找到a的第一个位置

var str = "Ana has apples!";
var n = str.search(" ");
代码应返回3作为在
str
中找到空格的第一个位置

我想知道是否有一个函数可以在我的字符串中找到下一个空格

例如,我想找到字符串中第一个单词的长度,如果我知道它的起始位置和结束位置,我可以很容易地做到这一点

如果有这样一个函数,在这方面还有比它更好的吗?

将为您提供第一个出现的
(从0开始):

var str=“安娜有苹果!”;
var n=str.indexOf(“”);

控制台日志(n)更好的匹配方法是使用
regex
。使用group
'g'
标志可以选择matchgroup

var str=“安娜有苹果!”;
var regBuilder=new RegExp(“,”ig”);
var匹配=”;
而((matched=regBuilder.exec(str))){
控制台日志(匹配+”,位置:“+matched.index);
}
str=“安娜就是安娜,没有人比安娜更好”;
regBuilder=新的RegExp(“Ana”、“ig”);
而((matched=regBuilder.exec(str))){
控制台日志(匹配+”,位置:“+matched.index);
}
试试这个:

const str=“安娜有苹果!”;
常量空格=str.split(“”)
.map((c,i)=>(c==“”)?i:-1)
.filter((c)=>c!=-1);
控制台日志(空格)您需要使用方法。它接受以下参数:

str.indexOf(searchValue[, fromIndex])
所以你可以这样做:

var str=“安娜有苹果!”;
var pos1=str.indexOf(“”;//3.
var pos2=str.indexOf(“,pos1+1);//7.

console.log(pos2-pos1-1);//3.您要查找的第二个单词的长度是
indexOf()
,而不是
search()
。您必须使用
str.indexOf(…)
(其中
str
是您的字符串)。
string.indexOf()
.indexOf()
提供索引
.includes()
将为您提供true或false。你可以很容易地在MDN或其他规范网站上查找这类内容,无需发布关于基本语法的问题。不,没有预先制作的函数可以告诉你找到某个子字符串的所有位置。当你的算法工作时,结果中的所有索引数都是+1。好吧,@connexo I纠正了这一点。但一开始这是一种被通缉的行为。因为代码更简单。(我不喜欢
.indexOf
从0开始):)空间位置呢?这就是OP的问题所在。你是对的,我误解了OP的问题,编辑了我的帖子。