0

それを使用して URL から文字列の一部を取得しようとしてregex.exec()いますが、何らかの理由でエラーが発生します。皆さんがそれを見つけられることを願っています。

文字列からこれを取得しようとしています->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 の正規表現は後読みをサポートしていません。

次の方法でうまくいく可能性があります。

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 に答える