我试图弄清楚如何从JS中的以下字符串中提取URL。
var str = '[velocity type="youtube" id="239793212" img="http://website.com/wp-content/uploads/image-placeholder.jpg" alt="Play" color="#FFFFFF" bkg_color="transparent"]';
我想以某种方式从WordPress TinyMCE编辑器正在读取的WordPress短代码中仅提取http://website.com/wp-content/uploads/image-placeholder.jpg
值。
我应该补充一点,字符串并不总是格式正确,img=""
的位置会有波动。
有没有办法将此字符串解析为JSON或数组,以便我可以访问img
的值?
答案 0 :(得分:4)
/img="([^"]*)"/.exec(str)[1]
英文:创建一个与img
部分匹配的正则表达式,将URL放在第1组中,在字符串上执行表达式后,获取第1组的内容。
表达式分解为
img=" # the string 'img="' ( # begin group 1 [^"]* # any character that is not a '"', any number of times ) # end group 1 " # the final double quote
相关文档:RegExp.prototype.exec()
on the MDN,当然还有正则表达式的主要信息网站:http://www.regular-expressions.info/。
答案 1 :(得分:1)
不是这样做的方式:
var str = '[velocity type="youtube" id="239793212" img="http://website.com/wp-content/uploads/image-placeholder.jpg" alt="Play" color="#FFFFFF" bkg_color="transparent"]';
var url = null;
str.split(' ').forEach(function(s){
if(s.indexOf('img') > -1) {
url = s.split("=")[1]
}
})
// url now contains your url
console.log(url);
或作为一个班轮:
var url = str.split(' ').filter(function(s){ return s.indexOf('img') > -1})[0].split("=")[1]
答案 2 :(得分:0)
你最好的选择是正则表达式。
var regEx= /"http:\/\/.+?"/g; //If you want to extract all urls.
var imgEx= /img=".+?"/g // If you want to extract all img parameters.