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));
});