JavaScript:与PHP等效的正则表达式

时间:2014-03-10 11:55:34

标签: javascript php regex

我有一个正则表达式,可以在php的字符串中找到给定单词'on'的下一个单词:

(?<=\bon\s)(\w+)

它适用于PHP,但对于js,它会出现以下错误:

  

Uncaught SyntaxError:无效的正则表达式:/(?&lt; = \ bon \ s)(\ w +)/:   无效的群组

javascript的等效正则表达式是什么?

2 个答案:

答案 0 :(得分:2)

(?<=\bon\s)positive lookbehind。 PHP的正则表达式引擎(PCRE)支持这些,但JavaScript的正则表达式引擎不支持。

虽然不可能编写完全相似的正则表达式,但您仍然可以使用以下正则表达式实现此目的:

\bon\s(\w+)

与原始正则表达式不同,\bon\s会消耗字符。但您仍然可以使用捕获组(\w+)提取结果。

用法:

var str = 'foo on bar';
var matches = str.match(/\bon\s(\w+)/);
var result = matches[1] // bar

Fiddle

答案 1 :(得分:1)

正如Amal Murali解释的那样,没有与Javascript正则表达式相当的东西。但是你可以写:

\bon\s(\w+)

并提取第一个捕获组。