Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.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 - Fatal编程技术网

Javascript 匹配没有特定分隔符的URL

Javascript 匹配没有特定分隔符的URL,javascript,regex,Javascript,Regex,我试图匹配任意文本中的所有URL,没有特定的分隔符,最终在同一行中匹配多个项目: http://www.site.com/image1.jpg "http://www.site.com/image2.jpg" 'http://www.site.com/image1.jpg&a=1' 请不要在第一个URL后面加空格,并且终止(&a=1) 这是我的实际正则表达式:https?:\/\/.*\。?:png|jpg,它只正确匹配最后一个URL,但第一个和第二个URL作为一个结果匹配 预期结果应

我试图匹配任意文本中的所有URL,没有特定的分隔符,最终在同一行中匹配多个项目:

http://www.site.com/image1.jpg "http://www.site.com/image2.jpg"
'http://www.site.com/image1.jpg&a=1'
请不要在第一个URL后面加空格,并且终止(&a=1)

这是我的实际正则表达式:https?:\/\/.*\。?:png|jpg,它只正确匹配最后一个URL,但第一个和第二个URL作为一个结果匹配

预期结果应该是:

http://www.site.com/image1.jpg
http://www.site.com/image2.jpg
http://www.site.com/image1.jpg

谢谢。

如果它们都以.jpg结尾,那么使用这个regexp:/[a-zA-Z0-9:\/\.-]+\.jpg/很容易实现。 我添加了几个url示例来测试匹配。结果是一个匹配数组

var str = "http://www.site.com/image1.jpg \"http://www.site.com/image2.jpg\" 'http://www.site.com/image1.jpg&a=1' http://www.21d1dk1kk1.org/image.jpg http://www.21d1dk1-kk1.org/image.jpg";

var matches = str.match(/[a-zA-Z0-9:\/\.-]+\.jpg/g); 
如果您需要匹配更多的jpg,您可以使用jpg | gif | png等来代替jpg,例如[a-zA-Z0-9:\/\.-]+\.jpg | gif | png/g


拥有匹配数组后,您可以通过迭代以任何方式输出它。但我想你知道怎么处理这个问题。

谢谢,效果很好!修改正则表达式如下:var items=ht.match/https?:\/\/[a-zA-Z0-9:\/\.-]+\.jpg | jpeg | png | gif/gi;匹配绝对URL、多种文件类型和不区分大小写。是的,不知道您是否需要该协议:但很高兴它有用,干杯!