在谈到使用Regex
时,我有点像新手,我偶然发现了一些问题。我正在尝试获取链接的href
内的文本。
这是我到目前为止所得到的
/\w+(?=")/g
这些是我正在测试它的字符串:
<a target="_blank" href="fdsfsd">fdsfs</a>
<a href="mdosfsd"></a>
<link href="f89sdfsd" />
现在它会返回“”中的任何文字,但我不知道如果在这种情况下还有更多“”,我该如何选择它是href
,如果此href
是<a>
答案 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="..."
此解决方案应仅用于简单场景,其中对此类奇数边缘情况的完全稳健性不是问题。