亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Javascript 條件替換不起作用

Javascript 條件替換不起作用

ibeautiful 2022-08-18 16:35:31
Javascript條件替換圖像src到https,如果url前綴是 http:// 并忽略 https:// 目前我已經將這段代碼添加到源部分。Javascript:src="' + p.replace("http","https") + '"問題:http://得到替換,但問題是它也替換它正在破壞src屬性和圖像返回404錯誤。如何解決此問題?https://https://httpss://更新:該變量包含圖像URL,有時是http,有時是其https。上面的代碼成功地將http替換為https,但是當一個url有https時,它會添加另一個這樣的s,返回404并且圖像無法加載phttpss://
查看完整描述

4 回答

?
慕妹3242003

TA貢獻1824條經驗 獲得超6個贊

只需展開選擇,即可替換而不是僅替換 ,即:http://http


p.replace("http://", "https://")

請參閱下面的示例:


const urls = [

  'https://example.com',

  'http://example.com'

];


urls.forEach(url => {

  console.log(`Original URL: ${url}`);

  

  // Incorrect behavior

  console.log(url.replace('http', 'https'));

  

  // Correct behavior

  console.log(url.replace('http://', 'https://'));

});


解決此問題的另一種方法是利用URL API,IE11之后的任何內容都支持該API。您只需使用構造函數解析字符串,然后修改其屬性,即:new URL()protocol


const urls = [

  'https://example.com',

  'http://example.com'

];


urls.forEach(url => {

  console.log(`Original URL: ${url}`);

  

  const modifiedUrl = new URL(url);

  modifiedUrl.protocol = 'https';

  console.log(modifiedUrl.toString());

})

查看完整回答
反對 回復 2022-08-18
?
慕無忌1623718

TA貢獻1744條經驗 獲得超4個贊

它工作正常。但是你能定義你的代碼,為什么你添加雙引號嗎?


var p = 'http://google.com';


var src= p.replace("http","https");


console.log(src);


更新


請查看此更新的解決方案。


var p = prompt('Enter URL?');


let str = p.split("://")[0];


var src= str === 'http' ? p.replace("http","https") : p;


console.log(src);

查看完整回答
反對 回復 2022-08-18
?
www說

TA貢獻1775條經驗 獲得超8個贊

它不起作用,因為匹配字符串 是替換字符串 的子集。所以你需要建議不要匹配字符串,或者你可以說只有匹配沒有后面的東西。httphttpshttpshttps


const urlVariants = [

  'http://www.google.com',

  'https://www.google.com'

]

urlVariants.forEach(url=> {

  console.log( url, '->', url.replace('http:','https:') )

  console.log( url, '->', url.replace(/http([^s])/,"https$1") )

})


查看完整回答
反對 回復 2022-08-18
?
當年話下

TA貢獻1890條經驗 獲得超9個贊

您應該使用正則表達式進行匹配。檢查 url 是否使用 http 的正則表達式是:

  /http[^(?=s)]{0}/i

下面是成功將 http 替換為 https 的工作代碼段。

"http://www.google.com".replace(/http[^(?=s)]{0}/i,'https')


查看完整回答
反對 回復 2022-08-18
  • 4 回答
  • 0 關注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號