string.match(regEx for text between[]), validate with a list

regEx to fetch the array from a multi line text and validate the array with a list of predefined values.

by muralinarisetty

JavaScript

var mergeFields = ["[sitename]",
            "[daystoholdquote]",
            "[expires]",
            "[firstname]",
            "[lastname]",
            "[sitephonenumber]",
            "[hoh_firstname]",
            "[hoh_lastname]"];       
   
var str = "fee [sitename] [firstname] \
sdfasd [lastname] ";
var res=validateMeargeFileds(str);
console.log(res);


function validateMeargeFileds(input) {
            var re = /\[\w+]/ig;
            var isValid;
            var myArray = input.match(re);
    try{
            if (myArray.length > 0) {
                myArray.forEach(function (field) {
                    
                    isValid = isMergeField(field);
                    if (!isValid){
                       throw e;                        
                    }
                });
            }
        }
        catch(e) {        
        }
     return isValid;
  }

function isMergeField(mergefield) {
     return mergeFields.indexOf(mergefield.toLowerCase()) > -1;
}