-1

demo.in、demo.co.in、demo.tv、demo.org.in のような結果が得られます。JavaScript 分割関数を使用して、拡張機能を個別に分割する必要があります。

var vsp = i.split(".");  

これは私のコードです。結果は demo,in demo,co,in として得られます

ただし、拡張機能を個別に取得する必要があります

4

6 に答える 6

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
于 2013-05-09T13:09:20.173 に答える
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]); 
}
于 2013-05-09T12:50:02.333 に答える
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;
}

そこから、この関数をループで使用して、多くのホスト名の拡張子を取得できます。

編集タイトルの「最後の2つの値」の部分に気づきました:)ありがとう@rab

于 2013-05-09T12:55:25.390 に答える
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, ".");

于 2013-05-09T12:43:42.490 に答える
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ください。

于 2013-05-09T12:33:46.930 に答える