gpt4 book ai didi

javascript - Js ReGex 非捕获组不起作用

转载 作者:行者123 更新时间:2023-11-28 01:03:37 27 4
gpt4 key购买 nike

我的问题是,我需要捕获一个脚本 src,但只有当它在 src 之前有一个脚本标记时我才需要获取它。

所以这里遵循我的正则表达式和我尝试过的选项

String: <script src="http://example.net"></script>
Regex: /(?:\<script[^]+src=("|'))([^]+)(?="|')/g
Match: <script src="http://example.net

第二个选项:

String: <script src="http://example.net"></script>
Regex: /(?!\<script[^]+src=("|'))([^]+)(?="|')/g
Match: script src="http://example.net

我需要得到的是:http://example.net

我真的很感谢任何帮助。

这是我用于测试的工具:http://www.regexr.com/

谢谢

最佳答案

正则表达式不是解析 HTML 的正确工具,但要解决此问题,您可以使用 exec()循环中的方法来获取所有子匹配,然后将捕获组的匹配结果推送到数组中。

var s = '<script src="http://foo.net"></script><script src="http://bar.com"></script>';

var re = /<script[^>]+?src=['"]([^'"]+)['"]/g,
matches = [];

while (m = re.exec(s)) {
matches.push(m[1]);
}
console.log(matches) //=> [ 'http://foo.net', 'http://bar.com' ]

关于javascript - Js ReGex 非捕获组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25333475/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com