JS 當中並沒有直接取得子網域的指令,但一般大多數情況下,可以透過 location.host or location.hostname,先取得完整網域,在對資料進行處裡,以下列出取得子域名的方法。
如果你是本機測試,請使用 location.hostname 來取得完整網域,避免取得 Port,以下使用 location.hostname 為例子 。
使用 split 取得子網域
使用 split 進行字串分割,在指定第一筆資料來取得子網域(subdomain)
// 假設當前網域 : sub.domain.com
window.location.host.split('.')[0]
// 輸出結果 : sub
window.location.hostname.split('.')[0]
// 輸出結果 : sub
使用 split + shift 取得子網域
使用 split + shift,split() 進行字串分割,在使用 shift() 取得陣的第一筆資料
// 假設當前網域 : sub.domain.com
window.location.hostname.split('.').shift()
// 輸出結果 : sub
window.location.hostname.split('.')[0]
// 輸出結果 : sub
使用 split + slice + join 取得子網域
有時候我們會遇到 subdomain 用到多個.來命名,這時可以使用 slice 來進行資料處裡
// 假設當前網域 : sub.a.b.c.domain.com
window.location.host.split('.').slice(0,-2).join('.')
// 輸出結果 : 'sub.a.b.c'
這裡 slice() 中的 -2,對映著你的 domain 有幾個詞組成,也可以看成 -2 為 domain 中的 . 數量 + 1,最後剩下的資料,再用 join() 組合起來,以下是步驟說明
// 假設當前網域 : sub.a.b.c.domain.com
// 步驟1:取得網址
window.location.host
// 輸出結果 : sub.a.b.c.domain.com
// 步驟2:字串分割
window.location.host.split('.')
// 輸出結果 : ['sub', 'a', 'b', 'c', 'domain', 'com']
// 步驟3:去除 domain,-2 為 domain 中的.數量 + 1
window.location.host.split('.').slice(0,-2)
// 輸出結果 : ['sub', 'a', 'b', 'c']
// 步驟4:用.將陣列資料組合成字串
window.location.host.split('.').slice(0,-2).join('.')
// 輸出結果 : 'sub.a.b.c'
heets
heets sigara satisi ile sizde iqos heets sahibi olun
gate io nedir
After reading your article, it reminded me of some things about gate io that I studied before. The content is similar to yours, but your thinking is very special, which gave me a different idea. Thank you. But I still have some questions I want to ask you, I will always pay attention. Thanks.
бнанс реферальна програма
I don’t think the title of your article matches the content lol. Just kidding, mainly because I had some doubts after reading the article. https://accounts.binance.com/uk-UA/register-person?ref=GJY4VW8W
Rejestracja na Binance US
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
創建免費帳戶
Thanks for sharing. I read many of your blog posts, cool, your blog is very good.
gateio
I have read your article carefully and I agree with you very much. So, do you allow me to do this? I want to share your article link to my website: gateio