我有一个 字符串 如下
// html 结构不确定,下面只是举个例子
const html = "
<div>
xxx
<span>123</span>
<p>
xxx
<span>456</span>
xxx
</p>
xxx
</div>";
我想替换其中的
<span>/\d+/</span>
为组件
<el-link href={k}>{k}</el-link>
得到最终的 Jsx
const Jsx = <div>
xxx
<el-link href={123}>{123}</el-link>
<p>
xxx
<el-link href={456}>{456}</el-link>
xxx
</p>
xxx
</div>;
综合来看,就是求下面的 handle 函数 求教 谢谢。
也可能我的思路过于曲折,如果有更好的 A->Z 的方法也希望不吝赐教。
<template>
<component :is="r()"></component>
</template>
export default {
data: () => ({
html,
}),
methods:{
handle(){
... 求解
},
r(){
const jsx = this.handle(this.html);
return {
functional: true,
render(h){
return jsx
},
};
}
}
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.