EMF Parse forms
by AntonLapshin
HTML
<textarea id="text"></textarea>
<button id="parse">Parse</button>
JavaScript
String.prototype.emfsubstr = function(prefix){
return this.substring(prefix.length).trim();
}
var RULES = [
{
regex: /Form id:/,
do: function(line){
if (g.forms[g.f]){
g.f++;
}
g.forms[g.f] = {
id_form: line.emfsubstr('Form id:'),
thumbnail_url: '//app-futurama.emailmeform.com/external/img/library/13.Emoji-Feedback.jpg'
}
}
},
{
regex: /Meta title:/,
do: function(line){
g.forms[g.f]["meta_title"] = line.emfsubstr('Meta title:');
}
},
{
regex: /Meta description:/,
do: function(line){
g.forms[g.f]["meta_desc"] = line.emfsubstr('Meta description:');
}
},
{
regex: /Form name:/,
do: function(line){
g.forms[g.f]["name"] = line.emfsubstr('Form name:');
}
},
{
regex: /Layerbox description:/,
do: function(line){
g.forms[g.f]["desc"] = line.emfsubstr('Layerbox description:');
}
},
{
regex: /Unique layer url:/,
do: function(line){
g.forms[g.f]["layer_url"] = line.emfsubstr('Unique layer url:');
}
},
{
regex: /Industry:/,
do: function(line){
g.forms[g.f]["industry"] = line.emfsubstr('Industry:');
}
},
{
regex: /Type:/,
do: function(line){
g.forms[g.f]["type"] = line.emfsubstr('Type:');
}
},
/* {
regex: /Thumbnail_path:/,
do: function(line){
g.forms[g.f]["thumbnail_url"] = line.emfsubstr('Thumbnail_path:');
}
}, */
];
var g = {
forms: [],
f: 0
};
$('#parse').click(function(){
var text = $('#text').val();
var lines = text.split('\n');
for(var i = 0; i < lines.length; i++){
var line = lines[i];
var matchedRules = $.grep(RULES, function(r){
return r.regex.test(line);
});
if (matchedRules.length === 0)
continue;
matchedRules[0].do(line);
}
console.log(JSON.stringify(g.forms));
});