正则表达式中?的理解

我在菜鸟教程中,执行下面的程序

菜鸟教程(runoob.com)


问题,如果没有端口

var str = "http://www.runoob.com/html/html-tutorial.html

var patt1 = /(\w+):\/\/([^/:]+)(:\d*)([^# ]*)/;

如果是这样,那么就不能匹配到东西,那么就会出错。

通过修改var str = "http://www.runoob.com:80/html/html-tutorial.html";中的:80,明白了?的作用,?的作用是匹配一次或多次,一般在我们的网址中,有时会指定端口,有时默认是80端口,那么在匹配的时候,如果不指定?的话,那么如果遇到没有指定端口的情况就会有问题。

你可能感兴趣的:(正则表达式中?的理解)