在字符串中查找具有正则表达式的所有背景URL

时间:2016-03-02 21:26:07

标签: javascript regex

我有以下字符串:

<div style="background-image:url(some src); background-color:some color;">
   <div style="background-image:url(some src); background-color:some color;">  </div>
</div>

我需要在此字符串中找到所有背景图片网址。现在我遵循正则表达式:/background-image.*[);]/g

但它需要背景图像和背景颜色,它只给我一次而不是两次。

1 个答案:

答案 0 :(得分:0)

RegEx解决方案:

用这个代替你的正则表达式:

/(background-image.*?(?:;))/g
  • /(分隔符和捕获组
  • background-image在字符串
  • 中匹配相同的内容
  • .*?匹配任何字符(换行符除外)
  • (?:非捕获组
  • ;匹配角色;字面上
  • g (修饰符)全球。所有比赛(首场比赛时不返回)

Demo

var str = '<div style="background-image:url(some src); background-color:some color;">\
   <div style="background-image:url(some src); background-color:some color;">  </div>\
</div>';
var result = /(background-image.*?(?:;))/g.exec(str);
document.write(result[0]+"<br />");
document.write(result[1]);

JQuery解决方案:

选择style属性(换句话说,解析HTML代码),然后选择的特定属性(在本例中为background-image < / p>

var str = '<div style="background-image:url(some src); background-color:some color;">\
               <div style="background-image:url(some src); background-color:some color;">  </div>\
               </div>';

alert($('div', str).attr("style").split(';')[0]);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>