如何使用 String.prototype.indexOf() 在给定字符串中查找一个或多个匹配的字符串模式?
例如:
我有一个要测试的字符串:
/accounts/{account}/project/{project}
我想测试
{...}
是否存在一个或多个字符串模式,其中...
可以包含任何内容。在此示例中,它们是:帐户
、项目
我想要
String.prototype.indexOf()
检索一个对象,该对象具有匹配模式的每个实例的开始和结束索引的集合。在此示例中,我想要:[{ start: 10, end: 18},{start: 28, end: 36}]
当只有一个匹配项时,我能够创建一个对象,但我不确定如何获得多个匹配项。
最佳答案
使用replace()
方法
var stringUnderTest = "/accounts/{account}/project/{project}";
var result = [];
stringUnderTest.replace(/\{([^\}]*)\}/gi, function(match, p1, index) {
result.push({
start: index,
end: index + p1.length + 1
})
});
console.log(result);
关于javascript - 如何将 indexOf 与字符串模式的多个实例一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57526625/