Noob问题;
请帮帮我..我只是一个初学者,我发现很难做到以下几点:
我想使用Javascript操作此文本,使其外观不同:
"5555 55:55: John: New York
6666 66:66: Jack: Los Angeles"
在我想要的操作之后:
[{ name:"John", address:"New York", number:"5555 55:55"},{ name:"Jack", address:"Los Angeles", number:"6666 66:66"}]
所以我真的想知道如何告诉Javascript这是一个新行,这意味着一个新值..这里是一个xxxx:这是一个名字..这里是一个xxxx :(空格),之后是地址..
我不知道这是否可能,但你的帮助真的非常感激。先谢谢你了
更新
文字是:
var text = "5555 55:55: John: New York \n 6666 66:66: Jack: Los \n Angeles 7777 77:77: Smith: South Park: 3321"
到目前为止我的代码:
var result = text.match(/\d\d\d\d \d\d:\d\d: [a-zA-Z]+: /g)
.map(function (x) {
x = x.split(': ');
return {
number: x[0],
name: x[1],
address: x[2]
};
});
但是我只得到“Los”这个词,因为regEx是错误的并且':'处的拆分不能正常工作,因为地址有时会这样。
答案 0 :(得分:6)
以下适用于Firefox:
"5555 55:55: John: New York\n 6666 66:66: Jack: Los Angeles"
.split('\n')
.map(function(x) {
x = x.split(': ');
return {
number: x[0],
name: x[1],
address: x[2]
};
});
其他版本缺少map
,您必须补偿。