Javascript 置換えと分割でドメイン取得
結論から。
$Domain = $url.replace(/\/\//g,”/”);
$siteDom = $Domain.split(“/”);
document.write($siteDom[1]);
考え方としては下記。
・ドメインには「/」が含まれない。
・サブドメインの前には「//」があり、それ以前は何もない。
↓↓↓
1.「//」を「/」に置き換えて、
2.「/」で分割する。
そのときの2番目が(サブドメイン付の)ドメインになるはず。
1.「//」を「/」に置き換える。(replace)
でも、これだと「//」が複数回使われるとNGになるっぽい。
http://www.syboos.jp/webjs/doc/string-replace-and-replaceall.html
ということで、「全部の”//”」としてあげたい。
そんなときは「g スイッチ」を使う。正規表現にするので・・・
「/」と「/」でかこってあげる必要がある。
今回は「//」が対象なので「////g」ってな形になるが、これだとエラー。
「/」という文字をエスケープ(?)してあげる必要あり。「/」→「\/」に。
ってことで「/\/\//g」
最終的に下記のようになる
これで「http://hoge.com/exmp.html」が「http:/hoge.com/exmp.html」に変更される。
2.「/」で分割してあげる。(split)
これでOK。
$siteDomは配列にされ、
[0]:「http:」
[1]:「hoge.com」
[2]:「exmp.html」
となる。で、2番目の[1]を参照してあげればOK
※replaceAllを定義していると楽っぽい
function replaceAll(expression, org, dest){
return expression.split(org).join(dest);
}
var value=”Hello World”;
replaceAll(value, “o”, “*”);
※他にもやり方はあるはず・・・