使用正则表达式javascript查找字符串中的所有子字符串

Find all the substrings in string with regex javascript

本文关键字:字符串 正则表达式 javascript 查找      更新时间:2023-09-26

我有一个富文本编辑器,它生成的输出也包括超链接。例如<p><a href="test.com" target="_blank">Link1</a>&nbsp;fsdfsdf <a href="google.com" target="_blank">Link2</a>&nbsp;fsdffsdfs</p> ,我需要获取所有的<a>标记和其中的href,这样我就可以运行验证,例如,如果它是外部链接,那么我就可以添加nofollow标记等。我应该使用什么样的正则表达式?或者regex以外的任何东西?

谢谢。

需要获得中的所有标签和href

或者regex以外的任何东西?

尝试创建一个元素,将编辑器文本设置为.innerHTML,使用.map()返回a元素的数组href属性值

// editor text
var html = document.querySelector("#editor").textContent,
    // element to store `html` from editor
    div = document.createElement("div"),
    // set `div` `.innerHTML` to editor text
    div.innerHTML = html;
// `links` : all `a` elements ; `list` : `links` `href` values
var links = [].slice.call(div.querySelectorAll("a")),
    list = links.map(function(el) {
      return el.href
    });
// filter `list`, set `rel="nofollow"` attribute at `a` element
// within `links` where condition at `if` returns `true`
for (var i = 0; i < list.length; i++) {
   if (/* condition ; for example if it's an external link */) {
     links[i].setAttribute("rel", "nofollow")
   }
}