Javascript 置換えと分割でドメイン取得

2010/09/06

結論から。

$url = “http://hoge.com/exmp.html”;

$Domain = $url.replace(/\/\//g,”/”);
$siteDom = $Domain.split(“/”);

document.write($siteDom[1]);

考え方としては下記。
・ドメインには「/」が含まれない。
・サブドメインの前には「//」があり、それ以前は何もない。
↓↓↓
1.「//」を「/」に置き換えて、
2.「/」で分割する。
そのときの2番目が(サブドメイン付の)ドメインになるはず。

1.「//」を「/」に置き換える。(replace)

$Domain = url[$i].replace(“//”,”/”);

でも、これだと「//」が複数回使われるとNGになるっぽい。
http://www.syboos.jp/webjs/doc/string-replace-and-replaceall.html

ということで、「全部の”//”」としてあげたい。
そんなときは「g スイッチ」を使う。正規表現にするので・・・
「/」と「/」でかこってあげる必要がある。
今回は「//」が対象なので「////g」ってな形になるが、これだとエラー。
「/」という文字をエスケープ(?)してあげる必要あり。「/」→「\/」に。
ってことで「/\/\//g」

最終的に下記のようになる

$Domain = $url.replace(/\/\//g,”/”);

これで「http://hoge.com/exmp.html」が「http:/hoge.com/exmp.html」に変更される。

2.「/」で分割してあげる。(split)

$siteDom = $Domain.split(“/”);

これでOK。

$siteDomは配列にされ、
[0]:「http:」
[1]:「hoge.com」
[2]:「exmp.html」
となる。で、2番目の[1]を参照してあげればOK

※replaceAllを定義していると楽っぽい

// 全ての文字列 org を dest に置き換える
function replaceAll(expression, org, dest){
return expression.split(org).join(dest);
}

var value=”Hello World”;
replaceAll(value, “o”, “*”);

※他にもやり方はあるはず・・・

新着(ニュース関連以外)

2018-07-26
年賀状で「新春」とか書くけど・・・何故なんだろうと8月を目前にした今、疑問に思った。
2018-05-16
PHPで画像のヘッダ情報(?)の「Orientation」を元に画像回転させたい。
2018-03-05
Android Studioをインストール。エミュレータを軽くするトコまで終わらせたかったけど、挫折した。
2018-02-23
プッシュ通知について調べてた時にでてきたServiceWorker。そのServiceWorkerについてのメモ。
2017-12-13
jqueryで取得したDOM要素をオブジェクトじゃなくて、配列で受け取りたい