Javascript RexExp(?=)结构
假设您正在搜索在Bs之后出现的Cs。 为什么以下代码返回-1而不是2:Javascript RexExp(?=)结构,javascript,regex,Javascript,Regex,假设您正在搜索在Bs之后出现的Cs。 为什么以下代码返回-1而不是2: console.log('abc'.search(/(?=b)c/)); 因为 q?=u匹配一个后跟u的q,而不使u成为匹配的一部分 在你问之前:。但是,在这种简单的情况下,您可以使用基于前瞻的解决方案: var index = 'abc'.search(/b(?=c)/); if (index !== -1) index++; console.log(index); 这是有效的,因为您正在查找前跟b的位置c,但逻辑上这
console.log('abc'.search(/(?=b)c/));
因为
q?=u匹配一个后跟u的q,而不使u成为匹配的一部分
在你问之前:。但是,在这种简单的情况下,您可以使用基于前瞻的解决方案:
var index = 'abc'.search(/b(?=c)/);
if (index !== -1) index++;
console.log(index);
这是有效的,因为您正在查找前跟b的位置c,但逻辑上这与大于后跟c的位置b的位置相同
然而,在你太激动之前:你不需要正则表达式。一点也不
var index = 'abc'.indexOf('bc');
if (index !== -1) index++;
console.log(index);