在javascript中,是否有等效的String.indexOf()接受正则表达式而不是第一个第一个参数的字符串,同时仍允许第二个参数?
我需要做类似的事情
str.indexOf(/[abc]/ , i);
和
str.lastIndexOf(/[abc]/ , i);
虽然String.search()将regexp作为参数,但不允许我指定第二个参数!
编辑:
事实证明,这比我原来想的要难,所以我编写了一个小的测试函数来测试所有提供的解决方案...假定regexIndexOf和regexLastIndexOf已添加到String对象。
function test (str) {
var i = str.length +2;
while (i--) {
if (str.indexOf('a',i) != str.regexIndexOf(/a/,i))
alert (['failed regexIndexOf ' , str,i , str.indexOf('a',i) , str.regexIndexOf(/a/,i)]) ;
if (str.lastIndexOf('a',i) != str.regexLastIndexOf(/a/,i) )
alert (['failed regexLastIndexOf ' , str,i,str.lastIndexOf('a',i) , str.regexLastIndexOf(/a/,i)]) ;
}
}
我正在测试如下,以确保至少对于一个字符正则表达式,其结果与我们使用indexOf相同
//在xes
test('xxx')中寻找a ;
测试('axx');
测试('xax');
测试('xxa');
测试('axa');
测试('xaa');
测试('aax');
测试('aaa');