從js取值到url超鏈接里面
<a id="index" href="https://www.baidu.com/s?aaa=取234bbb=取456&ccc=取789">URL取值</a>
<!--<a id="index" href="https://www.baidu.com/s?變數名稱=變數值名稱&變數名稱=變數值名稱&變數名稱=變數值名稱">URL取值</a>-->
var linkDOM = document.getElementById('index');
var str = '123-234-456-789',//從這個地方取值。aaa取234、bbb取456、ccc取789
//aaa取第1個橫杠后面的字符
//bbb取第2個橫杠后面的字符
//ccc取第3個橫杠后面的字符
newStr = str.split('-'),
lastStr = newStr.length ? newStr[newStr.length - 1] : '',
href = linkDOM.getAttribute('href');
//分析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 < len; 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;
}
var myURL = parseURL(href);
var _newUrl = replaceUrlParams(myURL, {aaa: lastStr }); //aaa為變數名
var _newUrl = replaceUrlParams(myURL, {bbb: lastStr }); //bbb為變數名
var _newUrl = replaceUrlParams(myURL, {ccc: lastStr }); //ccc為變數名
var _newUrl = replaceUrlParams(myURL, {ddd: lastStr }); //ddd為變數名
linkDOM.setAttribute('href', _newUrl);
console.log(_newUrl);
uj5u.com熱心網友回復:
沒有ddd,是不小心多寫出來的。不需要ddd哦重點提示一下:
上面的js如果只獲取一個變數值的話在本地電腦上是可以正常的獲取到最后一個橫桿后面的字符,
放在服務器上就無法獲取到任何字符了
好像是個靈異問題
大佬幫忙看看,感激不盡啊
uj5u.com熱心網友回復:
<div class="thread_mess" id="thread_imgid" data-tid="67902"><div class="message">點擊跳轉到百度首頁:https://www.baidu.com/</div>
</div>
//鏈接可點擊
if($('.thread_mess').length){
var textR=$('.thread_mess').html();
var reg = /(http:\/\/|https:\/\/)((\w|=|\?|\.|\/|&|-)+)/g;
var imgSRC=https://bbs.csdn.net/topics/$('.thread_mess img').attr('src');
if(reg.exec(imgSRC)){
return false
}else{
textR = textR.replace(reg, "<a href='https://bbs.csdn.net/topics/$1$2'>$1$2</a>");
}
document.getElementById('thread_imgid').innerHTML = textR;
}
文章來自:https://www.cnblogs.com/chenguiya/p/5221196.html
uj5u.com熱心網友回復:
大佬你好啊這個123-234-456-789寫在js什么位置啊?
還url里面的變數名稱和變數值能幫忙寫一下么?
現在這樣我完全看不懂啊
謝謝大佬
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/77912.html
標籤:JavaScript
