gpt4 book ai didi

javascript - 用于检查字符串是否包含有效脚本标记的正则表达式

转载 作者:行者123 更新时间:2023-11-30 11:00:11 24 4
gpt4 key购买 nike

我正在尝试创建一个正则表达式来测试给定字符串是否具有有效的脚本标记。例如,如果一个页面包含在其中

<body>Body goes here</body>
<script src = "page.js"></script>

使用正则表达式测试方法测试此字符串(在本例中为页面的 HTML 源代码)应返回 true,因为存在有效的脚本标记。同样,带有有效脚本标记的 URL,例如:

https://url.com/something.php?getp=<script>func();</script>

也应该返回 true。但是,类似的东西:

https://url.com/something.php?getp=<script</script>

应该返回 false,因为它不是一个有效的脚本标签。

任何有关如何解决此问题的建议都将不胜感激。谢谢!

最佳答案

使用DOMParser将字符串转换为文档,然后使用querySelector,检查文档是否有任何script标签:

const hasScript = str => Boolean(
new DOMParser().parseFromString(str, 'text/html').querySelector('script')
);

console.log(hasScript('https://url.com/something.php?getp=<script<\/script>'));
console.log(hasScript('https://url.com/something.php?getp=<script><\/script>'));
console.log(hasScript(`<body>Body goes here</body>
<script src = "page.js"><\/script>`));
console.log(hasScript('https://url.com/something.php?getp=<script>func();<\/script>'));

DOMParser 是安全的 - 脚本标签的内容不会在解析期间执行。

关于javascript - 用于检查字符串是否包含有效脚本标记的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58125910/

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