我得到的结果类似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