非常に包括的な JavaScript URL 解析関数とセグメント化された URL 解析メソッド_JavaScript スキル

WBOY
リリース: 2016-05-16 16:52:39
オリジナル
1180 人が閲覧しました

一、URL 解析関数

复制代码代码如下:

<スクリプト> 
/**
*@param {string} url 完全な URL アドレス
*@returns {object} カスタム オブジェクト
*@description 使用例: var myURL = parseURL('http://abc.com: 8080/dir /index.html?id=255&m=hello#top');

myURL.file='index.html'

myURL.hash= 'top'

myURL.host= 'abc.com'

myURL.query= '?id=255&m=hello'

myURL.params= Object = { id: 255, m: hello }

myURL.path= '/dir/index.html'

myURL.segments= Array = ['dir', 'index.html']

myURL.port= '8080'

myURL.protocol= 'http'

myURL.source= 'http://abc.com:8080/dir/index.html?id=255&m=hello#top'

*/
function parseURL(url) {
var a = document.createElement('a'); 
a.href = URL; 
return {
ソース: url,
プロトコル: a.protocol.replace(':',''),
ホスト: a.hostname,
ポート: a.port,
クエリ: a.search,
params: (function(){
var ret = {},
seg = a.search.replace(/^?/,'').split(' &'),
len = seg.length, i = 0, s;
for (;i if (!seg[i]) { continue; s = seg[i].split('=');
ret[s[0]] = s[1];
return ret;
> ファイル: (a.pathname.match(//([^/?#] )$/i) || [,''])[1],
ハッシュ: a.hash.replace('#' ,''),
パス: a.pathname.replace(/^([^/])/,'/$1'),
相対: (a.href.match(/tps?:// [^/] (. )/) || [,''])[1],
セグメント: a.pathname.replace(/^//,'').split('/')
}; 
}

//var myURL = parseURL('http://abc.com:8080/dir/index.html?id=255&m=hello#top'); 
var myURL = parseURL('http://localhost:8080/test/mytest/toLogina.ction?m=123&pid=abc'); 
alert(myURL.path); 
alert(myURL.params.m); 
alert(myURL.params.pid); 




二、JS分段URL解析

URL : 统一资源定位符 (Uniform Resource Locator, URL)この部分による完全な URL 構成:scheme://host:port/path?query#fragment



复制代码代码如下:scheme = 通信协议 (常用的http,ftp,maito等)
host = マスター(ドメイン名または IP)
port = 端末番号
path = 路径
query = 查询(選択可能、使用CGI、ISAPI、PHP/JSP/ASP/ASP.NETなど)技術制作のネットワーク)パラメータを転送します。複数のパラメータが存在する場合があります。「&」シンボル区切りを使用し、各パラメータの名前と値を「=」シンボル区切りで使用します。)
fragment = 情報片断(文字列、ネットワーク ソース内のフラグメントを指定します。たとえば、ネットワークには複数の名前解決があり、フラグメントを使用して特定の名前解決に直接配置できます。
この URL にあります
http://www.jb51.net:80/seo/?ver=1.0&id=6#imhere

私はその中の各部分を javascript で取得できます
1, window.location.href整 URLl 文字列(在浏览器中就是完全的地址栏)


2,window.location.protocol

URL の协议部分

本例返值:http:

3,window.location.host

URL の主机部分

例戻り值:www.jb51.net

4,window.location.port

URL の端口部分

如果採用默认的 80 端口(更新:即使用追加了:80),那么返值并不是默认的 80 而是空字符
例文返值:”"

5,window.location.pathname

URL の路径部分(就是文件地址)
本例返值:/seo/

6,window.location.search

查询(パラメータ)部分

除了给活動态语言赋值以外,我们同样可以给静态页面,并使用JavaScriptを使用して相信应のパラメータ值
例返值:?ver=1.0&id=6

7,window.location.hash

锚点
本例返值:#imhere

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート