问题描述
我正忙着为 Github 降价函数编写一个简单的 HTML。我的想法是有一个对象数组,这些对象定义了各种“映射”,从 HTML 标签到带有关联正则表达式的降价符号。
regExpReplace
用于解析一串 HTML,它将遍历 lessonToMDMap
中的每个项目,并在 {{1} 的帮助下通过相应的正则表达式替换每个 HTML 标签}.我想弄清楚如何从 .replace()
回调函数中更新 markdown
中定义的 regExpReplace
字符串。该代码当前不起作用,因为箭头函数回调可以访问父作用域(forEach 函数的词法作用域)。由于这个原因,该函数运行但不修改字符串。
我的问题是,是否有一些我可以从箭头函数回调中访问 forEach 之外的父作用域?有没有办法将作用域绑定到回调?
forEach
我尝试将回调定义为 //Define mapping in this array of objects
const lessonToMDMap = [
{
htmlTag: '<span class="ql-size-large">',mdTag: "##",regExp: RegExp(/\<(span)\s(class)\=("ql-size-large")\>/,'g'),},{
htmlTag: '<span class="ql-size-huge">',mdTag: "#",regExp: RegExp(/\<(span)\s(class)\=("ql-size-huge")\>/,'g')
},]
//Function for making replacements of html tags
const regExpReplace = function (mapArray,stringToParse) {
let markdown = '' + stringToParse;
mapArray.forEach((mapItem)=>{
markdown = markdown.replace(mapItem.regExp,mapItem.mdTag);
})
return markdown;
};
内的箭头函数,如下所示,但我仍然无法修改字符串。
regExpReplace
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)