在JavaScript中,是否有一个等价于
我需要做类似的操作。
虽然String.search()接受一个正则表达式作为参数,但它不允许我指定第二个参数!
编辑:
这比我最初想象的要难,所以我编写了一个小的测试函数来测试所有提供的解决方案...它假设regexIndexOf和regexLastIndexOf已经添加到String对象中。
我正在进行以下测试,以确保至少对于一个字符的正则表达式,结果与使用indexOf相同。
//在一堆x中寻找a test('xxx'); test('axx'); test('xax'); test('xxa'); test('axa'); test('xaa'); test('aax'); test('aaa');
String.indexOf(...)
的方法,它可以接受一个正则表达式作为第一个参数,同时还允许传入第二个参数?我需要做类似的操作。
str.indexOf(/[abc]/ , i);
并且
str.lastIndexOf(/[abc]/ , i);
虽然String.search()接受一个正则表达式作为参数,但它不允许我指定第二个参数!
编辑:
这比我最初想象的要难,所以我编写了一个小的测试函数来测试所有提供的解决方案...它假设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相同。
//在一堆x中寻找a test('xxx'); test('axx'); test('xax'); test('xxa'); test('axa'); test('xaa'); test('aax'); test('aaa');
[ ]
中的|
表示字面字符|
。你可能意思是[abc]
。 - Markus Jarderot