我有小问题。我有这个:
var result1=content.match("/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi")[1];
这段代码什么也没给出。我确定输入和正则表达式是正确的,但是:
- 它给了我一个错误:无法读取
1
.null
- 当我删除
[1]
然后result1 = null
它也不是数组。
知道有什么问题吗?
我有小问题。我有这个:
var result1=content.match("/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi")[1];
这段代码什么也没给出。我确定输入和正则表达式是正确的,但是:
1
.null
[1]
然后result1 = null
它也不是数组。知道有什么问题吗?
删除正则表达式周围的引号或使用new RegExp
构造函数。它应该是:
var result1 = content.match(/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi);
使用 RegExp 构造函数:
var result1 = content.match(RegExp("<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>", "gi"));
您正在尝试将正则表达式作为字符串传递:
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");