如何在 js 中使用 .match(regEx) 仅获取不带分隔符的内部字符串

How to get only internal string without delimiter with .match(regEx) in js?

本文关键字:获取 分隔符 字符串 内部 regEx js match      更新时间:2023-09-26

您好,我正在尝试使用 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""]

如何仅获取没有属性名称的值?

与其弄乱正则表达式,不如使用 filtermap 的组合来根据需要将元素的属性放入数组中:

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);

示例小提琴