Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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/4/regex/17.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和其他URL_Javascript_Regex_String_Parsing - Fatal编程技术网

Javascript 分别解析图像URL和其他URL

Javascript 分别解析图像URL和其他URL,javascript,regex,string,parsing,Javascript,Regex,String,Parsing,我有一个javascript函数,它将接收大量用户输入,并用HTML图像替换所有图像URL,用HTML链接替换所有其他URL。唯一的问题是,我的解决方案很难看P 以下是我目前的策略: 使用正则表达式首先用位置标记替换文本中的所有图像URL,如“#IMG[1]IMG#”,然后图像的URL存储在数组中,以便以后可以替换 然后,用正则表达式替换普通URL。之后,图像占位符将替换为相应的图像标记 这是可行的,但真的很混乱。如果只替换两个正则表达式字符串就好了,但是当普通URL替换为链接时,图像URL就会

我有一个javascript函数,它将接收大量用户输入,并用HTML图像替换所有图像URL,用HTML链接替换所有其他URL。唯一的问题是,我的解决方案很难看P

以下是我目前的策略:

使用正则表达式首先用位置标记替换文本中的所有图像URL,如“#IMG[1]IMG#”,然后图像的URL存储在数组中,以便以后可以替换

然后,用正则表达式替换普通URL。之后,图像占位符将替换为相应的图像标记

这是可行的,但真的很混乱。如果只替换两个正则表达式字符串就好了,但是当普通URL替换为链接时,图像URL就会被破坏

任何能更优雅地解决这一问题的战略构想都将不胜感激。当然,如果我可以得到一个正则表达式,它可以在不获取图像URL的情况下查找所有URL,这也可以解决我的问题。以下是我当前用于查找URL的正则表达式:

/((https?:\/\/[^\s'"]+)|([^\s'"]*www[^\s'"]+\.[^\s'"]{2,})|([^\s'"]+\.(com|net|org|jp|gov)[^\s'"]*))/g

你可以这样做:

((https?:\/\/[^\s'"]+)|([^\s'"]*www[^\s'"]+\.[^\s'"]{2,})|([^\s'"]+\.(com|net|org|jp|gov)[^\s'"]*))(?<!jpg)(?<!png)(?=\s|$|'|")

((https?:\/\/[^\s'”)+([^\s'”*www[^\s'”+\[^\s'”){2,})([^\s'”)+\([^\s'”)([^\s'”)(?文本是HTML还是纯文本图像URL?原始文本只是纯文本-不应包含任何HTML。