javascript - 是否可以使用 RegEx 将子字符串移动到特定位置?

标签 javascript regex

背景:我使用 quill.js 来获取一些富文本输入。我想要的结果与 HTML 非常相似,所以我选择了 quill.container.firstChild.innerHTML方法而不是实际序列化数据。但是说到 anchor ,而不是

<a href="test.html">Anchor</a>

我真的很想

Anchor{{link:test.html}}

使用 .replace() 方法我很容易得到 {{link:test.html}}Anchor</a>但我需要将链接描述放在 anchor 文本之后。有没有办法交换 {{link:test.html}}与下</a>这样我就能得到想要的结果?字符串中可以有多个 anchor ,例如:

str = 'This is a <a href="test1.html">test</a>. And <a href="test2.html">another one</a> here.'

我希望它变成:

str = 'This is a test{{link:test1.html}}. And another one{{link:test2.html}} here.'

最佳答案

您也可以使用 dom 方法。 dom 是比 regex 更好的 html 解析器。这是一个相当简单的 replaceWith

str = 'This is a <a href="test1.html">test</a>. And <a href="test2.html">another one</a> here.'

var div = document.createElement('div');
div.innerHTML = str;
div.querySelectorAll('a').forEach(a=>{
    a.replaceWith(`${a.textContent}{{link:${a.getAttribute('href')}}}`)
})

console.log(div.innerHTML)

关于javascript - 是否可以使用 RegEx 将子字符串移动到特定位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55549572/

相关文章:

javascript - 正则表达式匹配子字符串,但不是以单词为前缀

python - 理解Python中的正则表达式分隔符、sub、

javascript ->var 是什么意思?

javascript - 字符限制在 iPad 上不起作用

javascript - Webmidi js 不在浏览器上播放声音

javascript - 获取js对象key的值

javascript - 在 jQuery 中获取变量名

python - 快速解压大文本文件

regex - [[ :upper:]] and [:upper:] (bash)? 之间有什么区别

c# - 删除字母或标记出来只留下数字和撇号