2016-08-26 10 views
1

に文字列からオブジェクトを作成する:私は、文字列持つジャバスクリプト

var str = "username:joe_1987;password:123456;email:[email protected];" 

はI(というか、)は、どのように私はそれがパラメータだ呼び出すことができるように、外のオブジェクトを作成することができ、何かを以下のように:

alert(obj.password)123456

+0

あなたは[JavaScriptでクエリ文字列を解析](HTTPのこのhttp://stackoverflow.com/a/13419367/2479028 –

+0

が重複する可能性のようなもので開始することができます/stackoverflow.com/questions/2090551/parse-query-string-in-javascript) –

答えて

2

私はあなたのようになります。配列を与えて、文字列のセミコロンで分割をお勧めします:そして、あなたは、この配列の各要素に同じ考え方を適用することができます

["username:joe_1987", "password:123456", "email:[email protected]"] 

、およびオブジェクトを作成します。説明のためにスニペットをチャックしました:

var str = "username:joe_1987;password:123456;email:[email protected];" 

var splitBySemiColon = str.split(";"); 
splitBySemiColon.pop(); //Remove the last element because it will be "" 

var obj = {}; 

for(elem in splitBySemiColon) { 
    splitByColon = splitBySemiColon[elem].split(":"); 
    obj[splitByColon[0]] = splitByColon[1]; 
} 

希望します。

EDIT:あなたのためのライブデモを提供 - https://repl.it/CtK8

2

を取得する私は専門家だが、このようなものが動作するはずです:

string = 'username:joe_1987;password:123456;email:[email protected];'; 

array = string.split(';'); 
object = {}; 

for(i=0;i<array.length;i++){ 
    if(array[i] !== ''){ 
     console.log(array[i]); 
     object[array[i].split(':')[0]] = array[i].split(':')[1]; 
    } 
} 

console.log(object); 
0を

https://jsfiddle.net/oej2gznw/

0

あなたは所望の値が;または:を持っていない特定のだ場合は、あなただけの

var str = "username:joe_1987;password:123456;email:[email protected];" 
var obj = {}; 
str.split(';').forEach(function(segm) { 
    if(segm.trim()) { // ignore empty string 
    var spl = segm.split(':'); 
    obj[ spl[0] ] = spl[1]; 
    } 
}) 
0

この

を使用することができます
var str = "username:joe_1987;password:123456;email:[email protected];" 
    var data=str.split(';'); 
    var obj={}; 
    for(var i=0;i<data.length;i++){ 
     var propArray=data[i].split(':'); 
     obj[propArray[0]]=propArray[1] 
    } 
0

ストレートな方法はありません。その文字列を解析するだけです。例えば:/:

var str = "username:joe_1987;password:123456;email:[email protected];" 
 

 
var arr = str.split(';'); 
 
var o = {}; 
 
for (a in arr) { 
 
    if (arr[a]) { 
 
    o[arr[a].split(':')[0]]=arr[a].split(':')[1]; 
 
    } 
 
} 
 

 
console.log(o);

関連する問題