我没有什么问题。 我有这个:
var result1=content.match("/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi")[1];
此代码不提供任何内容。我确信输入和正则表达式是正确的,但是:
1
的属性null
。[1]
然后result1 = null
时,它也不是数组。知道出了什么问题吗?
答案 0 :(得分:2)
删除regexp周围的引号或使用new RegExp
构造函数。它应该是:
var result1 = content.match(/<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>/gi);
使用RegExp构造函数:
var result1 = content.match(RegExp("<a [^>]*href\s*=\s*[\"']([^>\"']*)[\"'][^>]*>", "gi"));
答案 1 :(得分:2)
您正在尝试将正则表达式作为字符串传递:
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");