2012-02-23 3 views
0

私は文字列を取り、その中のすべてのスペースを見つけ、それを別々の変数に分けようとしています。私は.split()を使うことができると知っていますが、それは新しい変数を作りません。私はjQueryや他のJavaScriptライブラリを使用しないことを好むでしょうが、もし必要ならば、それは最悪のことではありません。ありがとう!Javascript別の文字列を別の変数に


例、John M Petersは変数fname: Johnmname: Mlname: Petersことになります。あなたは簡単にそれを使用して新しい変数を割り当てることができるように

+0

すべての名前が常にミドルネームのイニシャルを持っていますか? – Paul

+0

いいえ、そうではありません。ミドルネームがあるかどうかを調べる前にチェックをしています。 –

答えて

4

.split()だけで、配列を返す...

var str = "John M Peters"; 
var fname = str.split(" ")[0]; 
var mname = str.split(" ")[1]; 
var lname = str.split(" ")[2]; 
+0

ああ、ありがとう、それは完璧に動作するように見える –

+2

ああ、私は 'let {fname、mname、lname} = str.split(" ");' – Domenic

+0

'[fname、mname、lname] =" John M Peters ".split( '') – mportiz08

2

はあなたがそうのような文字列を分割することができます

var name = 'John M Peters'; 
var arr = name.split(' '); 

var obj = {fname: arr[0]}; 
if(arr.length === 1) { 
    obj.lname = arr[1]; 
} else { 
    obj.mname = arr[1]; 
    obj.lname = arr[2]; 
} 

console.log(obj.fname); 
console.log(obj.mname); //could be undefined 
console.log(obj.lname); 

このソリューションはまたのために動作します中間のイニシャルも持たない文字列。この例はここにあります:http://jsfiddle.net/nDwmY/2/

0

これらの行に沿って関数を作成します。これはちょうどクイックアンドダーティであり、検証はしません。私はそれをあなたに任せます。

function parse_name(theName) { 
    var nameSplit = theName.split(" "); 

    var nameFields = { 
      first : nameSplit[0], 
      middle : nameSplit[1], 
      last : nameSplit[2] 
     }; 

    return nameFields; 
} 

名前を解析する必要があるときは、いつでも呼び出すことができます。

var parsedName = parse_name("John M Smith"); 

alert(parsedName.first); // Should alert "John" 
alert(parsedName.middle); // Should alert "M" 
alert(parsedName.last); // Should alert "Smith" 
0

他の人が指摘した答えに加えて、私はMozillaのJavaScriptエンジン(SpiderMonkeyのは)非構造割り当てをサポートしていることを指摘したいと思います:

<script language="javascript1.7"> 
    var s = 'John M. Peters'; 
    var fname, mname, lname; 

    [fname, mname, lname] = s.split(/\s+/); 
    alert('fname = ' + fname + ', mname = ' + mname + ', lname = ' + lname); 
</script> 

これには、ポータブルないですウェブプログラミングには理想的ではありません。しかし、FirefoxやThunderbirdなどのプラグインを作成している場合は、いくつかの興味深い言語拡張が利用できます。あなたは事前に、文字列内にあるどのように多くのスペースがわからない場合は、次の操作を行うことができます

+0

これはクロスブラウザ対応のシステムではありません、正しいですか? –

+1

正しかったので、移植性に関する私の警告; p。しかし、OPはこのJSコードの目的を特定していませんでした。プラグインなどの場合は完全に適切です。 – FatalError

0

var str = "How are you doing today, my dear friend?"; 
numberspaces = str.split(" ").length; //you know how many spaces there are 
words=str.split(" ");     //it creates an array of words 
var i; 
for (i = 0; i < numberspaces; i++){ 
console.log(words[i]);} 
関連する問題