我得到的结果如demo.in,demo.co.in,demo.tv,demo.org.in 我需要使用JavaScript分割功能
分别拆分扩展var vsp = i.split(".");
这是我的代码,我会得到结果 演示,演示,合作,
但我需要单独获得扩展
答案 0 :(得分:3)
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 />";
};
答案 1 :(得分:2)
我不知道你想要什么,所以这里有一些功能来涵盖可能的情况:
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
答案 2 :(得分:1)
我无法理解...... “扩展名”。您可以尝试以下代码
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 ) );
打印
{
"demo":"",
"demo.in":"in",
"my.demo.co.in":"co.in",
"demo.tv":"tv",
"demo.org.in":"org.in"
}
使用
处理结果for( var i in splited ) {
console.log( i, splited[i]);
}
答案 3 :(得分:0)
试试这个:
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
。
答案 4 :(得分: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, ".");
答案 5 :(得分:0)
您还可以使用lastIndexOf
,它返回上一个.
的位置,然后您可以使用substring
获取其余字符串。
function getExtension(hostName) {
var extension = null;
if(hostName && hostName.length > 0 && hostName.indexOf(".") !== -1) {
extension = hostName.substring(hostName.lastIndexOf(".") + 1);
}
return extension;
}
从那里,您可以在循环中使用此函数来获取许多主机名的扩展名。
编辑刚刚注意到标题中的“最后两个值”部分:)谢谢@rab