首页 > 解决方案 > 说 .match() 不是正则表达式中的函数

问题描述

我正在尝试使用正则表达式来查找字符串中的链接,但是当我在link上使用 t.match() 时,它会给出一个错误,说它不是一个函数。

var link = location.href;
var regex = /[^\?]*$/gi
var foo = link.match(regex);


var islink = foo.match(/^(http[s]?:\/\/(www\.)?|ftp:\/\/(www\.)?|www\.){1}([0-9A-Za-z-\.@:%_\+~#=]+)+((\.[a-zA-Z]{2,3})+)(\/(.)*)?(\?(.)*)?/gi);
alert(islink);

有人可以告诉我发生了什么吗?

标签: javascriptregex

解决方案


match创建 array.usefoo[0]

var link = location.href;
var regex = /[^\?]*$/gi
var foo = link.match(regex);

var islink = foo[0].match(/^(http[s]?:\/\/(www\.)?|ftp:\/\/(www\.)?|www\.){1}([0-9A-Za-z-\.@:%_\+~#=]+)+((\.[a-zA-Z]{2,3})+)(\/(.)*)?(\?(.)*)?/gi);
console.log(islink);


推荐阅读