gpt4 book ai didi

javascript - 使用JavaScript的YouTube网址的正则表达式

转载 作者:行者123 更新时间:2023-12-03 06:05:46 24 4
gpt4 key购买 nike

我有一种形式,其中有一个输入字段,仅要求输入一个有效的YouTube网址,而没有逗号分隔的YouTube网址。我已使用以下正则表达式验证youtube url的用户输入:

^((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube\.com|youtu.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?$
但是,如果用户输入以逗号分隔的有效youtube链接,则这些正则表达式将失败。
我想要一个正则表达式,其simpy在输入字段中仅允许一个有效的youtube链接。
当我是正则表达式的新手时,有人可以帮助我吗?
例如:
https://www.youtube.com/watch?v=DFYRQ_zQ-gk&feature=featuredhttps://www.youtube.com/watch?v=DFYRQ_zQ-gk&feature=featured
这应该会失败,因为只能输入一个网址,并且如果用逗号分隔的网址,则regex将失败

最佳答案

在代码下面,代码段验证输入字段,仅输入一个URL。

function isUrlValid(url) {
return /^(https?|s?ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(url);
}
测试用例:
valid:   https://google.com
valid: http://www.google.com:80/
valid: https://www.google.com:443/
valid: http://127.0.0.1/
invalid: www.site.com
invalid: x:
invalid: http://
invalid: javascript:alert('xss')

关于javascript - 使用JavaScript的YouTube网址的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63997829/

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