【发布时间】:2010-11-15 12:42:13
【问题描述】:
我对 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 regex url