2012-09-05 82 views
1

這段JavaScript代碼:JavaScript錯誤無效量詞

var regex = /(?<=<img src=").*?(?=")/gm; 
var src = regex.match(str); 

給了我這個錯誤:

SyntaxError: invalid quantifier ?<=<img src=").*?(?=") 
    in eval() line 0 

問題是什麼?

+1

你用'eval'創建的RegExp對象?你不應該。 – Bergi

+0

我不認爲JavaScript支持lookbehinds。 –

回答

2

你需要逃避你的問號像這樣:

/(\?<=<img src=").*?(\?=")/gm 

編輯:

上述修正你的 「無效量詞」 的問題。但是,@Pointy在他的評論中指出,RegExp對象不包含match函數。您可能會在字符串上尋找match。 (例如,"string".match(/reg(exp)/);)。

+0

如果我這樣做,我會在下一行中遇到新錯誤。 TypeError:regex.match不是函數 – rajat

+0

@rajat這是因爲在正則表達式實例上沒有稱爲「匹配」的方法。我認爲你正在尋找「執行」或「測試」。 – Pointy

相關問題