JavaScript正则表达式以匹配文本字段中的URL

27 浏览
0 Comments

JavaScript正则表达式以匹配文本字段中的URL

我该如何设置正则表达式来测试在JavaScript中的文本块中是否包含URL。我无法确定要使用的模式以实现此目的。

var urlpattern = new RegExp("(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?");
var txtfield = $('#msg').val(); /*这是一个文本区域*/
if (urlpattern.test(txtfield)){
    //处理相关操作
}

编辑:

我现在的模式在正则表达式测试器中可以实现我需要的功能,但是Chrome会抛出错误。

"Invalid regular expression: /(http|ftp|https):\/\/[w-_]+(.[w-_]+)+([w-.,@?^=%&:/~+#]*[w-@?^=%&/~+#])?/: Range out of order in character class"

以下代码会导致上述错误:

var urlexp = new RegExp('(http|ftp|https):\/\/[\w\-_]+(\.[\w\-_]+)+([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?');

0