我的問題很少。 我有這樣的:Javascript - Regexp - 全球搜索問題
var result1=content.match("/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi")[1];
此代碼給什麼。我敢肯定,輸入和正則表達式是正確的,但:
- 它給了我一個錯誤:無法讀取的
null
財產1
。 - 當我刪除
[1]
然後並且它也不是數組。
任何想法是什麼錯?
我的問題很少。 我有這樣的:Javascript - Regexp - 全球搜索問題
var result1=content.match("/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi")[1];
此代碼給什麼。我敢肯定,輸入和正則表達式是正確的,但:
null
財產1
。 [1]
然後並且它也不是數組。 任何想法是什麼錯?
你試圖通過正則表達式作爲一個字符串:
content.match("/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi")[1];
應該
content.match(/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi)[1];
例子:
> a = "abc"
"abc"
> a.match("/abc/")
null
> a.match(/abc/)
["abc"]
繼m.buettner的評論。如果您需要從字符串構建正則表達式,請使用以下語法:
var my_regex = new RegExp("abc", "gi");
或者,如果OP確實需要一個字符串(因爲他正在動態構建它),'content.match(new RegExp(string,'gi'))[1];' –
除去正則表達式引號或使用new RegExp
構造函數。它應該是:
var result1 = content.match(/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi);
使用正則表達式的構造函數:
var result1 = content.match(RegExp("<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>", "gi"));
請顯示'content'字符串中的內容。 – mishik