我正在尝试使用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);
因此在加载时我收到此错误 - &gt; SyntaxError: invalid quantifier
所以我尝试在针头附近添加单引号但是没有用。添加引号会让我needle.exec
不是函数。
答案 0 :(得分: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.
答案 1 :(得分:0)
为什么不使用捕获parens而不是lookbehind:
results = haystack.match(/\?src=([^&]*)&/);
if (results) {
result = results[1];
}