导入脚本中文件名的 javascript 正则表达式 (js/css)

标签 javascript jquery regex

我有一个包含一些 HTML 代码的字符串:

var myString = '<html> ... <script src="/cmn/libs/js/myJavascriptFile.js"></script> 
<link rel="stylesheet" href="../assets/myCssFile.css"/> ... </html>';

我想匹配所有导入的文件,不带路径,如下所示:myJavascriptFile.jsmyCssFile.css

我尝试使用这个正则表达式

var myRegexp = /src="(.*)"|href="(.*)"/g;
var match = myRegexp.exec(myString);

但它给了我整个路径,我想如果导入有单引号,它会失败。这里最好的方法是什么?谢谢

这是我所做的测试:https://regex101.com/r/gL8lO7/2

最佳答案

var html = document.getElementById("data").value;

var res = [];

html.replace(/(?:src|href)=(["'])(?:.*?)([^\\/"]*?)\1/g, function (match, quote, name) {
  res.push(name);
})

console.log(res);
textarea { display: block; width: 100%; }
<textarea id=data><html> ... <script src="/cmn/libs/js/myJavascriptFile.js"></script>
<link rel="stylesheet" href='../assets/myCssFile.css'/> ... </html></textarea>

关于导入脚本中文件名的 javascript 正则表达式 (js/css),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37655817/

相关文章:

javascript - 如何在加载 HTML 元素后立即修改它?

jquery - 如何隐藏 jQuery 数据表

javascript - 如何在html中显示多个json结果

php - Regex/DOMDocument - 匹配和替换不在链接中的文本

regex - 使用 Perl 中的命名捕获和预编译正则表达式进行替换

php 循环的 Javascript 函数

javascript - 为什么我的 clearInterval 不起作用?

javascript - 正则表达式用回车替换句子的每个结尾

javascript - 需要asp :TextBox when specific asp:CheckBoxList ListItem checked

预加载器 gif 的 Javascript 代码删除问题