2012-02-24 13 views
0

私がしていることは、文字列をすべてのスペースで分割することです。私は既に.split(" ")[0/1/2]を使用してこれを行ったが、どのようにそれらの個々の文字列を取り、長さを決定するのだろうか?私がこれをやっている理由は、文字列が真ん中かどうかを調べることです。このジョンMスミスのような名前が与えられれば、私はその言葉が何であるかを知ることができますが、誰かがミディアムイニシャルを入力しなければ、ラストネームはミドル初期変数に配置されます。どのように私はこれを行うに行くか、それとも私はそれにすべて取り組んでいますか?助けてくれてありがとう。JavaScriptを別の文字列にしてから文字数を解読する

答えて

1

使用区切られた文字列を保持している配列のlength:例えば

var separateStrings = stringVar.split(' '); 
var numOfNames = separateStrings.length; 

、次のコードで:

var i = document.getElementById('names'); // assuming an input element of id="names" 

i.onkeydown = function(e){ 
    if (e.keyCode == 13){ 
     var stringVar = this.value, 
      separatedNames = stringVar.split(' '), 
      numOfNames = separatedNames.length; 

     alert(numOfNames); 
    } 

};​ 

JS Fiddle demo

+0

このようにも見えます。 –

+0

さて、はい。どちらの答えも同じことを示唆しています。それは単に異なるデモンストレーションです。 =) –

1

ミドルネームがあるかどうかを確認するために結果の配列の長さを確認してください:

var result = "John Smith".split(" "); 
if(result.length == 2) { 
    //No middle name 
    //result[0] == "John" 
    //result[1] == "Smith" 
} 
else if(result.length == 3) { 
    //Has middle name 
} 
+0

素晴らしいですね。ありがとう! –

0

は、次を使用します。

var parts = "John M Smith".split(" "); 
var first = parts[0], 
    middle = (parts[2] && parts[1]) || "", 
    surname = parts[2] || parts[1]; 

ありますときには、各変数の正しい値を取得します真ん中のイニシャルとそうでないとき。これには常に姓と名があると仮定していますが、中間のイニシャルはオプションです。

+0

私はさらにそれをチェックして、少なくとも2つの単語が区切られていることを確認しています。ありがとう –

関連する問題