0

我正在尝试使用regex.exec()它从 URL 中检索字符串的一部分,但由于某种原因出现错误。希望大家能看出来。

我正在尝试从字符串中获取此信息->http://anotherdomain.com/image.jpg

var haystack = 'http://domain.com/?src=http://anotherdomain.com/image.jpg&h=300';
var needle = /(?<=src=).+(?=&h)/;
var results = needle.exec(haystack);

所以在加载时我收到了这个错误->SyntaxError: invalid quantifier

所以我尝试在针周围添加单引号但没有用。添加引号给我needle.exec不是一个功能。

4

2 回答 2

4

Javascript 正则表达式不支持lookbehind。

您也许可以通过:

var haystack = 'http://domain.com/?src=http://anotherdomain.com/image.jpg&h=300';
var needle = /src=(.+)(?=&h)/;
var results = needle.exec(haystack);

// results is now ["src=http://anotherdomain.com/image.jpg", "http://anotherdomain.com/image.jpg"], so haystack[1] is what you want.
于 2012-10-12T03:53:24.347 回答
0

为什么不直接使用捕获括号而不是后视:

results = haystack.match(/\?src=([^&]*)&/);

if (results) {
    result = results[1];
}
于 2012-10-12T04:04:22.087 回答