2017-01-11 4 views
0

を使用してURLのホスト部分を置き換える方法ホストパーツをURLのに置き換える方法javascript regexを使用しています。これは、httpの有無にかかわらずあらゆる種類のURLになります。このテキストがjsonファイルの内容であると仮定します。javascript regex

OldText:

ようなソリューション期待
{ 
    "auth" : { 
    "login" : "http://local.example.com:85/auth/signin", 
    "resetpass" : "http://local.example.com:85/auth/resetpass", 
    "profile" : "http://local.example.com/auth/profile" 
    } 
} 

:私は同じhereを見つけましたが、その正規表現は動作しません

{ 
    "auth" : { 
    "login" : "http://example.com:85/auth/signin", 
    "resetpass" : "http://example.com:85/auth/resetpass", 
    "profile" : "http://example.com/auth/profile" 
    } 
} 

var NewText = OldText.replace (/(some regex)/g, 'example.com'); 

新しいテキストを取得するためにとJavaScriptで。

注:私はRegexを探しています。

+0

のようなものを意味しますが、具体的に必要です正規表現を使用しますか? javascriptからurlを更新する必要がある場合は、潜在的に 'window.location.host'を再割り当てすることができます。 [参考](https://css-tricks.com/snippets/javascript/get-url-and-url-parts-in-javascript/) –

答えて

5

あなたはURL機能を使用して、新しいホスト名を設定することができます。これは、使用して容易に達成することができ

var oldUrl = "http://host1.dev.local:8000/one/two"; 
var url = new URL(oldUrl); 
url.hostname = 'example.com'; 
url.href //'http://example.com:8080/one/two' 
+0

inbuilt型をうまく使う。 – Nico

+0

Edge、IE 11、およびSafariではサポートされていません –

0

を:

var NewText = OldText.replace (/(https?:\/\/)(.*?)(:*)/g, '$1' + 'example.com' + '$3'); 

あなたはベストプラクティスでこれを修正するために歓迎されています。

0

これは正規表現を使って完全に実行できると思います。 ここに小さなスニペットがあります。それに他のものを追加したいのかどうか教えてください。

var urls = [ 
 
    { 
 
     url: "http://local.something.com:85/auth/signin" 
 
    }, 
 

 
    { 
 
     url: "local.anything.com/auth/profile" 
 
    } 
 
]; 
 
for(var i in urls) { 
 
    var newUrl = urls[i].url.replace(/(http:|)(^|\/\/)(.*?\/)/g, 'https://example.com/'); 
 
    console.log(newUrl); 
 
}

私は、HTTP

なし

から、想定しています、あなたは 'google.com'