您好,我正在尝试使用 js 解析 xml 字符串。我的字符串类似于下面的字符串。我正在使用带有正则表达式的 .match() 函数。
var str='<rate val="xyz"></rate> <rate val="klm"></rate> <rate val="mnp"></rate>';
var result=str.match(/val="(.+?)"/g);
我想得到一个结果数组,如下所示:
["xyz","klm","mnp"]
但它给了我
["rate val="xyz"","rate val="klm"","rate val="mnp""]
如何仅获取没有属性名称的值?
与其弄乱正则表达式,不如使用 filter
和 map
的组合来根据需要将元素的属性放入数组中:
var str = '<rate val="xyz"></rate> <rate val="klm"></rate> <rate val="mnp"></rate>';
var result = $(str).filter('rate').map(function() {
return $(this).attr('val');
}).get();
console.log(result);
示例小提琴