js通过正则直接获取img src的方法

2025-09-27 11:09:39

1、了解正则表达式的语法,下面给出几种我们需要用到的表达式的简介。具体更多的语法,请百度搜索正则表达式语法。

\s    匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。

?    匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?。

|    指明两项之间的一个选择。要匹配 |,请使用 \|。

.     匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \. 。

g   全文搜索

i    忽略大小写

js通过正则直接获取img src的方法

2、通过正则表达式匹配出所有图片img标签,因所有的html标签都是尖括号开始,尖括号结束,所以我们要编写img的正则表达式。即:<img\b.*?(?:\>|\/>)。首先 标签的开始是 <  ,后紧跟着 img,故使用   /<img\b 进行匹配

.*?  则对字符串进行最小匹配(下一个匹配(?:\>|\/>)出现时,.* 就失效)

img 标签结尾 使用 > 或者 /> ,使用 (?:\>|\/>) 进行匹配

注:圆括号()会有一个副作用,是相关的匹配会被缓存,此时可用?:放在第一个选项前来消除这种副作用。同时编写js代码,来实现匹配所有的img标签。

var str = "this is test string <img src=\"/test/test.jpg\

//匹配图片(g表示匹配所有结果i表示区分大小写)

 

var imgReg = /<img.*?(?:>|\/>)/gi;

 

console.log(str.match(imgReg));

js通过正则直接获取img src的方法

js通过正则直接获取img src的方法

js通过正则直接获取img src的方法

3、通过上述的正则表达式匹配后,会获取一个img的集合,这时,我们遍历集合中的每一个img标签,通过正则表达式来获取到src属性。匹配src的正则表达式为:/\bsrc\b\s*=\s*[\'\"]?([^\'\"]*)[\'\"]?/i

\bsrc \b 是把src当成一个单词进行匹配

\s*=  \s* 则是匹配 = 前后是否有空格(* 为0个以上)

[\'\"]?  进行最小匹配,src 一般用单引号或双引号包裹

([^\'\"]*)  匹配不上单引号和双引号的字符

注:这里没有使用 g 进行全局匹配,是因为 img 标签只有一个 src ,匹配到就可以结束了

js通过正则直接获取img src的方法

4、编写js代码,使用上述正则表达式来完成src的匹配,具体代码如下:

//匹配src属性

 

var srcReg =  /xxx=[\'\"]?([^\'\"]*)[\'\"]?/i;//  /xxx=/src,因内容不允许,请自行替换

for (var i=0;i<arr.length;i++)

 

{

 

   var src = arr[i].match(srcReg);

 

   //获取图片地址

 

   if(src[1]){

 

       console.log('已匹配的图片地址'+(i+1)+':'+src[1]);

 

   }

 

}

js通过正则直接获取img src的方法

1、使用正则表达式:   /<img\b.*?(?:\>|\/>)/gi 进行全文匹配,获取所有的 img 标签

2、使用正则表达式:   /\bsrc\b\s*=\s*[\'\"]?([^\'\"]*)[\'\"]?/i   对每一个 img 标签进行循环匹配,获取img对应的 src 属性。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢