Có rất nhiều câu hỏi SO dường như giải quyết các biến thể của câu hỏi này. Nhưng họ có xu hướng là câu trả lời phức tạp regex và tôi hy vọng tôi có thể tìm thấy một cái gì đó đơn giản hơn.Lấy tên miền gốc từ location.host
giá trị location.host Với các
foo.mysite.com
app.foo.mysite.com
mysite.com
Làm thế nào tôi có thể nhận được các tên miền gốc mysite.com
?
Tôi có thể làm điều gì đó giống như tìm kiếm thứ hai đến cuối .
, nhưng điều này có vẻ xấu xí và sẽ không hoạt động đối với bất kỳ TLD nào giống như .co.uk
. Nếu jQuery có một đối tượng chứa thông tin này, tôi rất vui khi sử dụng nó.
Mục tiêu của tôi là tạo cookie tồn tại trên tất cả các tên miền phụ. Để làm điều này tôi cần phải tìm .mysite.com
. Tôi không muốn mã hóa nó.
Cho một danh sách các tên miền cấp cao hợp lệ nó không phải là khó - thay vì thứ hai để cuối '.' bạn muốn đầu tiên' .' (readin g từ phải sang trái) sau TLD. Bạn có thể làm điều này với một regexp lớn hoặc một vòng lặp, nhưng sau này thường sẽ kém hiệu quả hơn. – jimw
Một danh sách đầy đủ có thể được tìm thấy ở đây: http://publicsuffix.org/ Cho dù bạn sử dụng regex hay một số cách khác sẽ không tạo ra nhiều sự khác biệt mà tôi đoán. Trong mọi trường hợp, bạn phải xem xét tất cả các TLD và SLD công khai. Hãy xem http://stackoverflow.com/questions/4452916/need-a-regular-expression-to-capture-second-level-domain-sld. –
Có một dự án để làm điều này tại https://github.com/riffraff/publicsuffix.js nhưng nó tuyên bố là "bị hỏng". Tôi đã không thử nó nhưng nó có thể tạo cơ sở cho giải pháp của bạn. –