制作正则表达式来检索html标签的href/src

问题描述 投票:0回答:1

我试图从链接中获取 href,从脚本标签中获取 src。 由于这是我第一次使用正则表达式,所以我对分组、否定和条件选择的工作原理还不够了解。

这就是我目前所拥有的

(\/|\.\/)((^([http|https]:\/\/))*.*?\w+)([a-zA-Z]\w+)(?=\.(js|css|ts)\b)(.*?\w+)

在这种情况下工作:

<script src="./script.js"/>
<script src="/script.js"/>
<script src="/my/custom/dir/script.js"/>
<!--Theme same for links-->

不起作用的情况:

<script src="https://my.cdn.fav/script.js"/>
<script src="http://my.cdn.fav/script.js"/>

或者它确实考虑了起始的 http 和 https,但没有选择它们。 正是这部分做错了

(\/|\.\/)((^([http|https]:\/\/))

javascript regex regex-group
1个回答
0
投票

根据您的输入字符串,您可以将您不想匹配的所有内容替换为

.replace(/<script\ssrc="|"\/>/g, " ").split(/[\n\s]+/).filter(Boolean)

let matches = `<script src="https://my.cdn.fav/script.js"/>
<script src="http://my.cdn.fav/script.js"/><script src="./script.js"/>
<script src="/script.js"/>
<script src="/my/custom/dir/script.js"/>`.replace(/<script\ssrc="|"\/>/g, " ").split(/[\n\s]+/).filter(Boolean);

console.log(matches);

© www.soinside.com 2019 - 2024. All rights reserved.