我得到的結果類似demo.in,demo.co.in,demo.tv,demo.org.in 我需要分別採用分體式擴展JavaScript的分裂功能我需要獲得最後兩個數值後點使用JavaScript分裂
var vsp = i.split(".");
這是我的代碼,我會得到的結果作爲 演示,在演示中,合作,在
,但我需要擴展獨立
我得到的結果類似demo.in,demo.co.in,demo.tv,demo.org.in 我需要分別採用分體式擴展JavaScript的分裂功能我需要獲得最後兩個數值後點使用JavaScript分裂
var vsp = i.split(".");
這是我的代碼,我會得到的結果作爲 演示,在演示中,合作,在
,但我需要擴展獨立
Working fiddle(演示版)
var values = [
"demo.in",
"demo.co.in",
"demo.tv","demo.org"
];
var results = [];
// iterate through the values
for (var i = 0, len = values.length; i < len; i++) {
// Split the parts on every dot.
var parts = values[i].split(".");
// Remove the first part (before the first dot).
parts = parts.slice(1, parts.length);
// Join the results together
results.push(parts.join("."));
};
console.dir(results); // all done
// Nicely display the values for the OP:
for (var i = 0, len = results.length; i < len; i++) {
document.body.innerHTML += (i + 1) + ": " + results[i] + "<br />";
};
試試這個:
var vsp = i.split(".");
for(var i=0; i< vsp.length; i++){
if(i !== 0){ //leaving the first match
// do something with vsp[i]
}
}
我希望你不考慮www
也。 :)。如果是這樣,那麼保持i>1
而不是i !== 0
。
有幾種方法可以做到這一點(可能沒有那麼容易,因爲它應該是)。你可以定義一個函數是這樣的:
function mySplit(str, delim) {
var idx = (str.indexOf(delim) == -1) ? str.indexOf(delim) : str.length;
return [str.substr(0,idx), str.substr(idx)];
}
然後調用它像:var sp = mySplit(i, ".");
我不能確切理解.. 「擴展」。你可以嘗試像下面的代碼
var urls = "demo,demo.in,my.demo.co.in,demo.tv,demo.org.in"
.split(',');
var splited = urls.reduce(function(o, n){
var parts = n.split('.');
o[ n ] = (function(){
var ext = [];
while(!(parts.length == 1 || ext.length == 2)) {
ext.unshift(parts.pop());
};
return ext.join('.');
}());
return o;
}, {});
console.log(JSON.stringify(splited));
它打印使用
for(var i in splited) {
console.log(i, splited[i]);
}
您還可以使用lastIndexOf
,返回最後.
的位置和
{
"demo":"",
"demo.in":"in",
"my.demo.co.in":"co.in",
"demo.tv":"tv",
"demo.org.in":"org.in"
}
處理結果從那裏你可以使用substring
獲得字符串的其餘部分。
function getExtension(hostName) {
var extension = null;
if(hostName && hostName.length > 0 && hostName.indexOf(".") !== -1) {
extension = hostName.substring(hostName.lastIndexOf(".") + 1);
}
return extension;
}
從那裏,您可以在循環中使用此函數來獲取許多主機名的擴展名。
編輯只注意到在標題中註明「最後兩個值」部分:)謝謝@rab
getExtension(「demo.org。''''return' in' – rab 2013-05-09 12:58:36
我不知道你想要什麼,所以這裏的一些功能,以覆蓋可能的情況:
var s = 'demo.co.in'
// Return everything before the first '.'
function getExtension(s) {
var m = s.match(/^[^.]+/);
return m? m[0] : '';
}
alert(getExtension(s)); // demo
// Return everything after the last '.'
function getExtension2(s) {
var m = s.match(/[^.]+$/);
return m? m[0] : '';
}
alert(getExtension2(s)); // in
// Return everything after the first '.'
function getExtension3(s) {
return s.replace(/^[^.]+\./, '');
}
alert(getExtension3(s)); // co.in
我也不知道他想要什麼:) – rab 2013-05-09 13:10:43
如果是「foo.example.com」? – epascarello 2013-05-09 12:48:33
你叫什麼「延期」?你只是想要在最後一段(。)之後或第一段之後的部分? – RobG 2013-05-09 12:50:06