任何幫助?當我運行此我得到「無效量詞?< = HREF =」正則表達式失敗
var aHrefMatch = new RegExp("(?<=href\=")[^]+?(?=")");
var matchedLink = mystring.match(aHrefMatch);
但我知道正則表達式是有效的。
任何想法?
任何幫助?當我運行此我得到「無效量詞?< = HREF =」正則表達式失敗
var aHrefMatch = new RegExp("(?<=href\=")[^]+?(?=")");
var matchedLink = mystring.match(aHrefMatch);
但我知道正則表達式是有效的。
任何想法?
的Javascript不支持lookbehind斷言。它只支持lookahead的。產生錯誤是因爲它假定?是0或1的量詞,但在子模式開始時沒有要量化的元素(由(
左括號開始)
此外,您的字符串似乎缺少一些反斜槓,因爲雙引號是沒有逃過那裏。它應該會產生一個語法錯誤。
也許這段代碼可以幫助你做你想達到什麼目的:
var match = mystring.match(/href=\"([^\"]*)\"/);
var matchedLink = match[1];
你一定要逃逸正則表達式的雙引號與標準反斜槓:
var aHrefMatch = new RegExp("(?<=href\=\")[^]+?(?=\")");
...或者你可以只用單引號指定的字符串:
var aHrefMatch = new RegExp('(?<=href\=")[^]+?(?=")');
您是不是要找等號(=)後,並提前看後逃跑報價=? 此外,如果你只是想匹配href =「一些文本」,那麼你真的不需要看後面的結構。以下應該做的很好:
href=\"[^"]+\"
如果您正在嘗試匹配其他內容,請詳細說明。謝謝
不知道你想做什麼。但是如果你想獲得鏈接。
var aHrefMatch = new RegExp(/(href\=\")([\w\-\/]+)?(\")/);
var matchedLink = mystring.match(aHrefMatch)[2];
是的,我需要獲取字符串中錨元素的href。 Fredrik你的代碼似乎最接近,但當我運行它時,我得到: - 非法字符 var aHrefMatch = new RegExp(href = \「[^」] + \「); \ n – mindwire22 2010-04-19 08:54:35
確保您刪除所有空格,聲音像一些非法字符使它成爲你複製/粘貼的原因 如果不是請粘貼什麼mystring看起來像 – fredrik 2010-04-19 10:43:48
RegExp構造函數接受一個字符串作爲它的第一個參數@ Meander365,在開始處改變'/'結束於'''。或者像@Rithiur建議的那樣使用正則表達式。 – 2010-04-19 14:16:22
+1是指出的唯一答案* both *問題:lookbehinds和未轉義的引號。 – 2010-04-19 14:17:39
是的,剛剛讀過另一篇文章,指出js不支持lookbehind斷言。謝謝! – mindwire22 2010-04-19 19:23:47