[英]Make line of text into json format
我有很多公司名称都是文字,但是我想这样格式化它们:
{
"permalink": "3dplusme",
"latitude": "",
"longitude": ""
},
{
"permalink": "3point5-com",
"latitude": "",
"longitude": ""
}
我有300家公司,只是这样的文字:
3dplusme
3point5-com
accessdata
acticut-international
adaptive-computing
airvend
...etc
我正在寻找一些正则表达式将为我做到这一点。 我正在尝试解决问题,但是任何帮助都会很棒! 谢谢!
PS:方括号后面的逗号可能会弄乱公司的姓氏,但没关系,因为我可以手动对其进行修复。 我基本上只是想要一些帮助,所以我不必手动进行。 谢谢! :)
编辑:谢谢大家的帮助! 大家都帮了我 谢谢
如果每行都应该是permalink属性,则可以在新行字符上分割字符串并创建一个数组。 然后使用Array.map方法创建数据的新数组
var lines = variableHoldingText.split("\n");
var data = lines.map(function(item){
return {permalink:item,latitude:"",longitude:""};
});
console.log(data);
//use JSON.stringify to get a json string
console.log(JSON.stringify(data));
如果您真的想使用正则表达式,则可以使用以下代码: var re =/([\\s\\S]*?)\\n/gm;
var myJson=[];
var str=$.trim($('#text').text());
var re =/([\s\S]*?)\n/gm;
var match;
while (match = re.exec(str)) {
myJson.push({permalink:match[1],latitude:"",longitude:""});
}
这是JS Fiddle 。
您要查找的内容本身不是正则表达式 ,而是使用正则表达式的替换 。
在Vim中,
:%s/.*/{\r\t"permalink": "&",\r\t"latitude": "",\r\t"longitude": ""\r},/
我不使用JavaScript,但这是我想到的。 然后将文件放入字符串中:
var mystring = "a\nb\nc\n"
console.log(mystring.replace(/(.*)\n/mg , "{\n\t\"permalink\": \"$1\",\n\t\"latitude\": \"\",\n\t\"longitude\": \"\"\n}\n"));
另外,您可以逐行遍历文件,仅打印JSON字符串,并将公司名称替换为变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.