2017-06-08 17 views
0

文字列の最初の空白にのみ基づいて配列内の文字列を分割したい。このよう最初の空白で文字列を分割する

var name = "Jone Doe Doone"; 
var res = ["Jone", "Doe Doone"]; 
+1

に分割さ配列で返してきた例です。.. 'indexOf()'は 'substring()'を使って分割されますか? – KarelG

+0

split( ""、1)を使用してファーストネームを取得し、replace()を使用してリマイング文字列を取得します。 var Name = "Jone Doe Doone"; var res1 = Name.split( ""、1); var res2 = Name.replace(res1 + ""、 ""); var res = [res1、res2]; – athar13

答えて

1

は、私が最初にスペースを見つけるためにindexOf()を使用して、あなたが使用していないのはなぜsubstring()

function splitAtFirstSpace(str) { 
 
    if (! str) return []; 
 
    var i = str.indexOf(' '); 
 
    if (i > 0) { 
 
    return [str.substring(0, i), str.substring(i + 1)]; 
 
    } 
 
    else return [str]; 
 
} 
 

 
console.log(splitAtFirstSpace("Jone Doe Doone")); 
 
console.log(splitAtFirstSpace("BooDoone")); 
 
console.log(splitAtFirstSpace("Doe Doone"));

+0

'const'はまだ広くはサポートされていませんが、私は彼が何かを使用しているのではないかと疑っています。 – Cristy

+0

@Cristyよく... [互換性テーブル](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/const#Browser_compatibility)をチェックすると...公正​​です考慮。しかし私はそれを習慣として使う。その後 'var'に置き換えられました。 – KarelG

+0

はい、デスクトップサポートは大丈夫ですが、モバイルではかなり悪いです。 – Cristy

-3

シンプル。

function splitFirst(s) { 
    var firstW = s.indexOf(" "); 
    if (firstW < 0) { 
    return s; 
    } 
    var array = []; 
    array.push(s.substring(0, firstW)); 
    array.push(s.substring(firstW, s.length - 1)); 
    return array; 
} 

注:JavaScriptのコーディング規約は、変数は小文字で開始する必要が言います。

+0

これは、2番目と3番目の単語を組み合わせて、2番目のスペースを削除します。また、3番目の単語の後に追加の単語がある場合は処理しません。 – freginold

+0

私の回答を更新しました –

+0

最終的な配列要素の最後の文字を切り捨てます。 's.length - 1'を2番目の' .push'で 's.length'に変更すると、それを修正する必要があります。 – freginold

-4

次の回答をお試しください。ここで

var Name = "Jone Doe Doone"; 
var result = [Name.split(" ")[0]]; 
result.push(Name.substr(Name.split(" ")[0].length).trim()); 
console.log(result); 
+0

私は自分の答えを更新しました。 – Santhu

関連する問題