Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript纯文本url解析_Javascript_Regex_Parsing_Url Parsing - Fatal编程技术网

javascript纯文本url解析

javascript纯文本url解析,javascript,regex,parsing,url-parsing,Javascript,Regex,Parsing,Url Parsing,我试图搜索以http开头的URL的普通旧字符串,但我找到的所有正则表达式似乎都不能在javascript中工作,也不能在javascript中找到这样的示例 这是我试图从中使用的,并且: 但是,当我尝试运行它时,会出现“意外令牌|”错误。您正在使用/作为regex分隔符,并且还在regex中使用/(www之前),因此regex实际上在第一个/www之前终止。将其更改为: var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&

我试图搜索以http开头的URL的普通旧字符串,但我找到的所有正则表达式似乎都不能在javascript中工作,也不能在javascript中找到这样的示例

这是我试图从中使用的,并且:


但是,当我尝试运行它时,会出现“意外令牌|”错误。

您正在使用
/
作为regex分隔符,并且还在regex中使用
/
(www之前),因此regex实际上在第一个/www之前终止。将其更改为:

var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
                                     ^^^^ escape here

好吧,一个评论似乎是不够的,很难找到完整的答案。我重写了整个适当的regexp:(经过测试,效果良好)


最后的
i
表示“忽略大小写”,所以这个regexp是必需的。

忘了提到,这个regexp是不区分大小写的,所以你更愿意写这个:
var test=/\b(?(?:https?;ftp | file):\/\/www\.\ftp\。[-A-Z0-9+&@\/%=u124$!,.]*[A-Z0-9+&-/%=u124$]
可能有助于注意,在www之前添加一个|将使www成为可选的。这将在带有括号的url上失败
var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#/%=~_|$?!:,.]*[A-Z0-9+&@#/%=~_|$]/;
                                     ^^^^ escape here
var test = /\b(?:(?:https?|ftp|file):\/\/www\.|ftp\.)[-A-Z0-9+&@#\/%=~_|$?!:,.]*[A-Z0-9+&@#\/%=~_|$]/i;