1. 程式人生 > >javascript與php字符串解析函數

javascript與php字符串解析函數

javascript與php字符串解析函

一、javascript:
  1. 代碼:
    /*
    @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
    }
  2. 測試:
    var url = "https://user:[email protected]:80/a/b/?name=lee&sex=male#id";
    var ret = parseurl(url)
    console.log(ret)
  3. 輸出:
    { scheme: ‘https‘,
    user: ‘user‘,
    pass: ‘pass‘,
    host: ‘www.baidu.com‘,
    port: ‘80‘,
    path: ‘a/b/‘,
    query: ‘name=lee&sex=male‘,
    fragment: ‘id‘ }

    二、php:

  4. 代碼(自帶):
    parse_url()
  5. 測試:
    <?php
    $url = "http://user:[email protected]:80/a/b?name=lee&sex=male#id";
    $ret = parse_url($url);
    var_dump($ret);
  6. 輸出:
    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字符串解析函數