gpt4 book ai didi

用于查找基本 URL 的 Javascript 正则表达式

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

我对 JS 中的这个正则表达式感到生气:

var patt1=/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*?(:[0-9]+)?(\/)?$/i;

如果我给出一个像“http://www.eitb.com/servicios/concursos/516522/”这样的输入字符串,这个正则表达式应该返回 NULL,因为在基本 URL 之后有一个“文件夹”。它适用于 PHP,但不适用于 Javascript,就像在这个脚本中一样:

<script type="text/javascript">
var str="http://www.eitb.com/servicios/concursos/516522/";
var patt1=/^http(s)?:\/\/[a-z0-9-]+(.[a-z0-9-]+)*?(:[0-9]+)?(\/)?$/i;
document.write(str.match(patt1));
</script>

返回

http://www.eitb.com/servicios/concursos/516522/,,/516522,,/ 

问题是:为什么它不起作用?如何让它发挥作用?

想法是在另一个函数中实现此正则表达式,以便在传递的 URL 格式不正确时获取 NULL:

http://www.eitb.com/ -> 正确 http://www.eitb.com/something -> 不正确

谢谢

最佳答案

我不是 javascript 专家,但习惯了 perl 正则表达式,所以我会试一试;正则表达式中间的 . 可能需要转义,因为它可以映射 / 并破坏整个正则表达式。

试试这个方法:

var patt1=/^http(s)?:\/\/[a-z0-9-]+(\.[a-z0-9-]+)*?(:[0-9]+)?(\/)?$/i; 

关于用于查找基本 URL 的 Javascript 正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4184409/

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