2011-06-23 51 views
2

我有如何分割在JavaScript

var description="Name:John;EmployeeID:2;Salary:$8000;Address:London"; 

数据功能我想要的结果作为

Name: John 
Employee Id: 2 
Salary: $8000 
Address: London 

是否有可能在JavaScript中分裂()函数?

回答

1

有了这个说法:

var arrDescription = description.split(";"); 

,你会得到一个数组的所有值。有关split的更多信息,请检查以下link

你甚至可以加入他们算账:

printf(arrDescription.join(" ")); 

有关join检查的详细信息如下link

最大

+0

我该如何找到arrDescription的子串 – Saloni

+0

@Saloni:你是否想要在数组中找到一个项目? - > http://stackoverflow.com/questions/143847/best-way-to-find-an-item-in-a-javascript-array或http://stackoverflow.com/questions/237104/javascript-array -containsobj – JMax

+0

我只有子字符串不是完整的字符串 – Saloni

0

是的。

你首先应该用split上的分号;。遍历这些结果,并且split每个结果在每个冒号:上。

您将不得不手动建立结果。

5

你可以用String.split()做,但在这种情况下,它易于使用String.replace()

var description="Name:John;EmployeeID:2;Salary:$8000;Address:London"; 
description = description.replace(/;/g, '\n').replace(/:/g, ': '); 
/* 
"Name: John 
EmployeeID: 2 
Salary: $8000 
Address: London" 
*/ 
2

如果你想要的结果作为对象,尝试:

var f = function (str) { 
    var x = {}, key2label = { EmployeeID: 'Employee Id' }; 
    str.replace(/(.+?):(.+?)(;|$)/g, function (match, key, value) { 
     key = key2label[key] || key; 
     x[key] = value; 
    }); 
    return x; 
}; 

如果需要一个简单的字符串,但你仍然需要替换键:

var f2 = function (str) { 
    var key2label = { EmployeeID: 'Employee Id' }; 
    return str.replace(/(.+?):(.+?)(;|$)/g, function (match, key, value, semi) { 
     key = key2label[key] || key; 
     return key + ': ' + value + (semi ? '\n' : ''); 
    }); 
}; 

如果你真的不是故意要更换钥匙,这将做到这一点:

var f3 = function (str) { 
    return str.split(':').join(': ').split(';').join('\n'); 
}; 

...或使用马特球的答案。

1

你可能会尝试像这样显示。

 var description="Name:John;EmployeeID:2;Salary:$8000;Address:London"; 
     var arr=new Array(); 
     arr=description.split(";"); 
     for(var i=0;i<arr.length;i++) 
      document.writeln("<h4>"+arr[i]+"</h4>");  
+0

如果我在textBox中有描述,那么我该如何使用split函数。 – Saloni

+0

您可以使用document.getElementById(“textBoxId”)。 –

0

Var描述= “姓名:John;雇员:2;工资:$ 8000个;地址:伦敦”; var splitted = description.split(“;”);

for(var i = 0; i < splitted.length; i ++){document.write(splitted [i] +“”); }