- 檢查是否爲有效的網址,弱檢測,只支持http和https。
/**
* 檢查是否爲有效的網址
* @ function isUrl
* @ param {String} url 判斷給定URL是否爲一個有效的http(s)連接
* @ return {Boolean}
*/
$.isUrl = function (url) {
url = url.trim();
return url && /^https?:\/\/[^\s]*$/.test(url);
};
/**
* 依據指定參數生成新的URL
* @ function createUrl
* @ param {Object} params 用來構建查詢字符串的參數鍵值對
* @ param {String} [baseUrl] 相對地址,默認爲window.location.pathname
* @ return {String} 新的URL
*/
$.createUrl = function (params, baseUrl) {
var url = baseUrl || win.location.pathname, ps = [];
for (var p in params) ps.push(p + '=' + encodeURIComponent(params[p]));
return url + (ps.length > 0 ? '?' + ps.join('&') : '');
};
/**
* 獲取單個查詢參數
* @ function getQueryString
* @ param {String} name 待查找的參數名稱
* @ return {String} 所查詢的參數值(已解碼);若是不存在,返回空串
*/
$.getQueryString = function (name) {
if (!name) return '';
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = win.location.search.slice(1).match(reg);
return r && r[2] !== null && r[2] !== undefined ? decodeURIComponent(r[2]) : '';
};
/**
* 獲取全部的查詢參數
* @ function getQueryParams
* @ param {String} [str] 形如"apple=red&banana=yellow"的字符串。默認是window.location.search。
* @ return {Object} 參數名-參數值(已解碼)
*/
$.getQueryParams = function (str) {
var arr;
if (str) {
if (str.indexOf('#') >= 0) str = str.slice(0, str.indexOf('#'));
arr = str.split('&');
} else if (win.location.search.length > 1) {
arr = win.location.search.slice(1).split('&');
} else {
return {};
}
var r = {}, i, j;
for (i=0;i<arr.length;i++) {
j = arr[i].lastIndexOf('=');
if (j < 0) {
r[decodeURIComponent(arr[i])] = '';
} else if (j > 0) {
r[decodeURIComponent(arr[i].slice(0, j))] = decodeURIComponent(arr[i].slice(j+1));
}
}
return r;
};