正则表达式完美解析URL中的各部分

来源:互联网 发布:db2分页查询优化 编辑:程序博客网 时间:2024/06/16 22:34
var parse_url = /^(?:([A-Za-z]+):)?(//{0,3})([0-9./-A-Za-z]+)(?::(/d+))?(?://([^?#]*))?(?:/?([^#]*))?(?:#(.*))?$/;  var url = "http://www.baidu.com/?loehuang";  var result = parse_url.exec(url);  var names = ['url','scheme','slash','host','port','path','query','hash'];  var blanks = "         ";  for(var i=0;i<names.length;i++){    document.writeln(names[i] + ":" +        blanks.substring(names[i].length),result[i])   }  

结果:

url:      http://www.baidu.com/?loehuangscheme:   httpslash:    //host:     www.baidu.comport:     path:     query:    loehuanghash: 

正则解释:

?: 表示不捕获
[A-Za-z] 表示匹配大小写字母,
[A-Za-z] + 表示可连续匹配一个以上大小写字母
([A-Za-z]+) 表示捕获括号中的匹配内容
([A-Za-z]+):)? 表示可匹配0-1次?前面内容
//{0,3} 表示可连续匹配“/”0至3个
[0-9./-A-Za-z]+ 表示连续匹配一个以上的大小写字母、0-9数字以及“.”、”/”、“-”
/d+ 表示连续匹配数字
(?::(/d+)) 表示匹配“:”和数字,不捕获外边括号的内容,捕获里边括号的内容
[^?#]* 表示连续匹配除“?”和“#”的内容

0 0
原创粉丝点击