Javascript Regex matchAll函数不起作用

保罗·特里莫尔

每当我运行下面的代码时,我都会收到错误消息 TypeError: responseData.matchAll is not a function

    var responseData = response.data.toString(); 
    var regex = new RegExp('(<dbname>)(.*?)(?=<\/dbname>)', 'g'); 

    var matches = responseData.matchAll(regex);
    

当我更换matchAllexec它的工程!但是,我需要使用matchAll这真让我抓狂。谢谢

Ryszard捷克

如果需要matchAll,请在支持的情况下使用它:

var responseData = "<dbname>hhh</dbname>hhh<dbname>hhh3</dbname>"; 
var regex = new RegExp('<dbname>(.*?)(?=</dbname>)', 'g'); 
console.log(Array.from(responseData.matchAll(regex), x=>x[1]));
// => ["hhh","hhh3"]
   

您也可以使用exec

var responseData = "<dbname>hhh</dbname>hhh<dbname>hhh3</dbname>"; 
var regex = new RegExp('<dbname>(.*?)(?=</dbname>)', 'g'); 
while(match=regex.exec(responseData)){
  console.log(match[1]);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章