正则表达式从javascript中的字符串中提取img src属性?

时间:2017-04-16 23:23:48

标签: javascript html regex

当jg可以是jpg或png时,我需要用什么正则表达式来提取img src的一部分?我的最终结果应该是“/img.happykitten.png”或“/img.happykitten.jpg”

原始字符串的格式为“assets / img / happykitten.png”

我尝试了这个,但它不起作用:

  var productImg = $('.image-holder').html(),
      regex = /\/img.*(png|jpg)/,
      productImgSrc = regex.exec(productImg)[0];

2 个答案:

答案 0 :(得分:1)

Demo

正则表达式:

/\/.*?\.(?:png|jpg)/gm

从文件开头到扩展名匹配的所有内容\/.*?

仅考虑以 .png .jpg 结尾的文件\.(?:png|jpg)

答案 1 :(得分:1)

以下是JavaScript中的最小实现......

(function () {
  var regex = /\.(jpg|png)$/,
      images = document.getElementsByTagName('img'),
      arr = [];
      
  for (var i = 0; i < images.length; i++) {
    if (regex.test(images[i].src)) {
      arr = images[i].src.split('/');
      console.log('/img.' + arr[arr.length - 1]);
    }
  }
})();
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Images</title>
</head>
<body>
  <img src="assets/img/happykitten.jpg">
  <img src="assets/img/happykitten.gif">
  <img src="assets/img/happykitten.svg">
  <img src="assets/img/happykitten.png">
 </body>
</html>