javascript與php字符串解析函數
阿新 • • 發佈:2018-06-08
javascript與php字符串解析函一、javascript:
- 代碼:
/* @desc:url解析函數 @author <lee> [<[email protected]>] @param url 要查詢的url @return ret 解析後的對象 */ function parseurl(url){ var reg = /(?:([A-Za-z]+):)?(\/{0,3})?(?:(.*):(.*)@)?([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?/ var res = reg.exec(url) var scheme = (res[1])?res[1]:‘http‘ var user = (res[3])?res[3]:‘‘ var pass = (res[4])?res[4]:‘‘ var host = (res[5])?res[5]:‘‘ var port = (res[6])?res[6]:‘‘ var path = (res[7])?res[7]:‘‘ var query = (res[8])?res[8]:‘‘ var fragment = (res[9])?res[9]:‘‘ var ret = { scheme:scheme, user:user, pass:pass, host:host, port:port, path:path, query:query, fragment:fragment } return ret }
- 測試:
var url = "https://user:[email protected]:80/a/b/?name=lee&sex=male#id"; var ret = parseurl(url) console.log(ret)
- 輸出:
{ scheme: ‘https‘, user: ‘user‘, pass: ‘pass‘, host: ‘www.baidu.com‘, port: ‘80‘, path: ‘a/b/‘, query: ‘name=lee&sex=male‘, fragment: ‘id‘ }
二、php:
- 代碼(自帶):
parse_url()
- 測試:
<?php $url = "http://user:[email protected]:80/a/b?name=lee&sex=male#id"; $ret = parse_url($url); var_dump($ret);
- 輸出:
array(8) { ["scheme"]=> string(4) "http" ["host"]=> string(13) "www.baidu.com" ["port"]=> int(80) ["user"]=> string(4) "user" ["pass"]=> string(4) "pass" ["path"]=> string(4) "/a/b" ["query"]=> string(17) "name=lee&sex=male" ["fragment"]=> string(2) "id" }
javascript與php字符串解析函數