使用正则表达式和javascript从锚标记的href中提取文本

时间:2016-07-20 13:50:33

标签: javascript regex

在谈到使用Regex时,我有点像新手,我偶然发现了一些问题。我正在尝试获取链接的href内的文本。

这是我到目前为止所得到的

/\w+(?=")/g

这些是我正在测试它的字符串:

<a target="_blank" href="fdsfsd">fdsfs</a>
<a href="mdosfsd"></a>
<link href="f89sdfsd" />

现在它会返回“”中的任何文字,但我不知道如果在这种情况下还有更多“”,我该如何选择它是href,如果此href<a>

的一部分

2 个答案:

答案 0 :(得分:1)

您可以使用Element.getAttribute()。在Mozilla开发者网络here

上阅读相关内容

以下是一个例子:

var attribute = element.getAttribute(attributeName);

另请注意:使用正则表达式解析html是不好的做法。见这里 - RegEx match open tags except XHTML self-contained tags

答案 1 :(得分:0)

纯粹使用正则表达式的解决方案虽然通常不可取(如上所述),但是:

var re = /href="[^"]*"/gi,
    extracted = yourText.match(re).map(v => v.slice(6, -1));

请注意,这有很多方面存在缺陷 - 例如,如果使用单引号(href)而不是双引号(')定义",该怎么办?或者,如果有白色空间怎么办?或者,一个假阳性属性,例如not-an-href="..."

此解决方案应仅用于简单场景,其中对此类奇数边缘情况的完全稳健性不是问题。