gpt4 book ai didi

Javascript - 通过正则表达式派生键调用哈希值

转载 作者:行者123 更新时间:2023-11-30 15:40:21 30 4
gpt4 key购买 nike

我有如下代码:

  var str =
`<doc>
<a href="#h-1">
<a href="#h-2">
<a href="#h-3">
</doc>
<doc>
<a href="#h-9">
</doc>`

var veg_anchor_map = new Object();
veg_anchor_map['h-1'] = 'cabbage';
veg_anchor_map['h-2'] = 'potato';
veg_anchor_map['h-3'] = 'carrot';


var href_regex = /<a href="#(.*?)"/g;
str = str.replace(href_regex, veg_anchor_map['$1']);
console.log(str);

我正在尝试将 str 变量中的所有 href 链接替换为以下语法:

  //example:
<doc>
cabbage>;
potato>;
carrot>;
</doc>

但是每次我尝试在我的正则表达式语句中调用分组时,它都会声明它是未定义的,有人可以帮我解决这个问题吗?谢谢。

最佳答案

使用带有回调函数的 String.replace() 函数作为第二个参数:

...
var href_regex = /<a href="#(.*?)"/g;
str = str.replace(href_regex, function ($m0, $m1) {
return veg_anchor_map[$m1] || $m0;
});
console.log(str); // <doc>cabbage>potato>carrot></doc><doc><a href="#h-9"></doc>
  • veg_anchor_map[$m1] || $m0 将从 veg_anchor_map 对象返回替换值,否则(如果未找到)- 返回当前匹配字符串

关于Javascript - 通过正则表达式派生键调用哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40919611/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com