用javascript替換URL中的引數值
今天遇到一個需要用javascript將url中的某些引數替換的需求,想起了不久前從先生的部落格中淘到了一個,正好可以藉此實現,程式碼整理如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
//分析url function parseURL(url) {
var a = document.createElement( 'a' );
a.href = url;
return {
source: url,
protocol: a.protocol.replace( ':' , '' ),
host: a.hostname,
port: a.port,
query: 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;
})(),
file: (a.pathname.match(//([^/? #]+)$/i) || [, ''])[1],
hash: a.hash.replace( '#' , '' ),
path: a.pathname.replace(/^([^/])/, '/$1' ),
relative: (a.href.match(/tps?://[^/]+(.+)/) || [, '' ])[1],
segments: a.pathname.replace(/^ //, '').split('/')
};
} //替換myUrl中的同名引數值 function replaceUrlParams(myUrl, newParams) {
for ( var x in newParams) {
var hasInMyUrlParams = false ;
for ( var y in myUrl.params) {
if (x.toLowerCase() == y.toLowerCase()) {
myUrl.params[y] = newParams[x];
hasInMyUrlParams = true ;
break ;
}
}
//原來沒有的引數則追加
if (!hasInMyUrlParams) {
myUrl.params[x] = newParams[x];
}
}
var _result = myUrl.protocol + "://" + myUrl.host + ":" + myUrl.port + myUrl.path + "?" ;
for ( var p in myUrl.params) {
_result += (p + "=" + myUrl.params[p] + "&" );
}
if (_result.substr(_result.length - 1) == "&" ) {
_result = _result.substr(0, _result.length - 1);
}
if (myUrl.hash != "" ) {
_result += "#" + myUrl.hash;
}
return _result;
} //輔助輸出 function w(str) {
document.write(str + " );
} var myURL = parseURL( '' );
w( "myUrl.file = " + myURL.file) // = 'index.html'
w( "myUrl.hash = " + myURL.hash) // = 'top'
w( "myUrl.host = " + myURL.host) // = 'abc.com'
w( "myUrl.query = " + myURL.query) // = '?id=255&m=hello'
w( "myUrl.params = " + myURL.params) // = Object = { id: 255, m: hello }
w( "myUrl.path = " + myURL.path) // = '/dir/index.html'
w( "myUrl.segments = " + myURL.segments) // = Array = ['dir', 'index.html']
w( "myUrl.port = " + myURL.port) // = '8080'
w( "myUrl.protocol = " + myURL.protocol) // = 'http'
w( "myUrl.source = " + myURL.source) // = ''
var _newUrl = replaceUrlParams(myURL, { id: 101, m: "World" , page: 1, "page" :2 });
w( " )
w(_newUrl); //
|
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2808432/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 將url中的指定引數替換的javascript程式碼例項JavaScript
- JavaScript獲取url傳遞的引數值JavaScript
- JavaScript 獲取 url 傳遞引數值JavaScript
- bash 引數替換中的模式匹配模式
- javascript如何獲取url傳遞的引數值JavaScript
- JavaScript解析URL引數JavaScript
- javascript獲取url傳遞的引數鍵值表對JavaScript
- vi 替換命令引數
- javascript獲取url連結傳遞的指定引數的值JavaScript
- Shell 中的命令替換及引數擴充套件套件
- jQuery獲取url引數值jQuery
- javascript如何修改url地址的引數JavaScript
- javascript獲取url引數值出現亂碼解決JavaScript
- url傳遞的引數值編碼
- 獲取url傳遞的引數值
- ant如何替換JAVA程式碼中的String變數中的值?Java變數
- js根據引數名獲取url上的引數值JS
- C#獲取URL引數值C#
- javascript將引數轉換為數值程式碼詳解JavaScript
- js如何獲取url所傳遞的引數和引數值JS
- C# 解析獲取Url引數值C#
- JS獲取URL中引數值(QueryString)的4種方法分享JS
- Android筆記:獲取url或uri字串中的引數值Android筆記字串
- javascript如何替換字串中的指定內容JavaScript字串
- javascript替換字串中的某個漢字JavaScript字串
- 教你如何替換@PathVariable中的變數變數
- SAP Fiori 應用 url 中的 DraftUUID 引數的含義RaftUI
- js獲取url地址中的引數JS
- 獲取url網址傳遞的指定引數值
- javascript獲取url引數程式碼例項JavaScript
- Asp.Net MVC路由引數獲取、替換ASP.NETMVC路由
- jQuery獲取url引數值程式碼例項jQuery
- 數值型模板引數的應用
- C#中的值引數,引用引數及輸出引數C#
- Django裡URL配置中name引數的作用Django
- React中的url引數——this.props.matchReact
- js獲取url連結中的引數JS
- javascript的簡單模板替換JavaScript