2014-07-13 39 views
1

鉴于这两个字符串:正回顾后匹配所有空格

browser: { 
browser: { 

我如何写一个积极的回顾后在JavaScript中使用。测试可返回布尔真的吗?到目前为止,我已经尝试过的模式是

(?<=:[\s]+){ 

回答

1

你不想要一个 '回顾后',这不存在。你只需要更好地构建你的正则表达式。

您试图匹配的完整表达式是什么?

例如,如果你希望所有:{其间具有1+空格: var regex = /:\s+{/; regex.test('Browser: {'); //true regex.test('Browser: {'); //true regex.test('Browser:{'); //false

没有必要为捕获组,如果你只想要一个布尔值。

4

没有回顾后在JavaScript中,但存在替代品...

  • JavaScript的正则表达式不支持回顾后
  • 如果你必须回顾后,在备用XRegGexp regex库有它,以及其他有用的功能
  • 一个经典的解决方法不支持回顾后的发动机是匹配的字符串(in)(pieces)(in capture groups)并且只能检索您感兴趣的组。

这个例子展示了如何从捕获组中获取你想要的,而忽略你不想要的。

var myregex = /This must be here, but don't want to match it(I want this)/i; 
var matchArray = myregex.exec(yourString); 
if (matchArray != null) { 
    thematch = matchArray[1]; 
} else { 
    thematch = ""; 
} 
+0

+1提到'XRegExp',这真的很强大。 – anubhava

+0

+1好方法=) – hwnd

1

下面的正则表达式将捕获的空白后:

:([^{]*) 

的JavaScript将不支持回顾后,所以我用捕捉组捕捉到其存在只是为了:后的空间。

DEMO