我试图找出如何使用正则表达式拆分字符串,同时将结果放入哈希表.
例:
var x = "Name: John Doe
Age: 30
Birth Date: 12/12/1981";
var arr = x.split(/Name:|Age:|Birth Date:/);
Run Code Online (Sandbox Code Playgroud)
然而,虽然我可以吐出一个字符串,但问题是我无法将值存储为有用的格式,例如哈希等.因为某些信息可能并不总是显示出来.
我希望结果如下:
var myHash = {}; // New object
myHash['Name'] = "John Doe";
myHash['Age'] = "30";
myHash['Birth Date'] = "12/12/1981";
Run Code Online (Sandbox Code Playgroud)
有这么简单的原因吗?
编辑:该脚本用于解析生成的报告中的数据.格式并不总是有回车.它将用于自动生成通知,而不是手动输入所有内容.
例:
Name: John Doe Birth Date: 12/12/1981
Age: 30
Run Code Online (Sandbox Code Playgroud)
但是,在看到示例后,如果我首先在正则表达式匹配前添加回车符或其他特殊字符,我可以这样做.需要弄清楚如何在正则表达式匹配之前添加值.
您可以使用两个拆分首先将其拆分为项目,然后拆分每个项目:
var results = {};
var x = "Name: John Doe\nAge: 30\nBirth Date: 12/12/1981";
var pieces = x.split("\n"), part;
for (var i = 0; i < pieces.length; i++) {
part = pieces[i].split(":");
results[part[0]] = part[1];
}
Run Code Online (Sandbox Code Playgroud)
工作示例:http://jsfiddle.net/jfriend00/kYwq6/
根据您正在做的事情,您可能希望在将每个键和值的开头和结尾放入结果对象之前修剪空白.