Change Content - Javascript

Change html element content using pure javascript author(s): Deepu Mohan Puthrote (WarFox)

by Kumar Sidharth

HTML

<div id="myelement">Old Text</div>

JavaScript

var input = "[{(()}]";

var bracketTypes = {
	paranthesis: {
  	open: '(',
    close: ')'
  },
  curly: {
  	open: '{',
    close: '}'
  },
  square:{
  	open: '[',
    close: ']'
  },
}

function checkBrackets(inputBrackets) {
	var stack = [];
  for(let i = 0; i< inputBrackets.length; i++) {
  	if(inputBrackets[i] === bracketTypes.paranthesis.open ||
      inputBrackets[i] === bracketTypes.curly.open ||
      inputBrackets[i] === bracketTypes.square.open) {
				stack.push(inputBrackets[i]);
        continue;
    }
    if(inputBrackets[i] === bracketTypes.paranthesis.close ||
      inputBrackets[i] === bracketTypes.curly.close ||
      inputBrackets[i] === bracketTypes.square.close) {
    		if(getOtherBracket(stack[stack.length-1]) === inputBrackets[i]) {
        	stack.pop();
          continue;
        } else {
        		
        	inputBrackets = [
          	...inputBrackets.slice(0,i),
            getOtherBracket(inputBrackets[i]),
            ...inputBrackets.slice(i+1, inputBrackets.length)
           ].join('');
           return checkBrackets(inputBrackets);
        }    
    }
  }
  return inputBrackets;
}

function getOtherBracket(bracket) {
	switch(bracket) {
  	case '(' : return bracketTypes.paranthesis.close;
    case ')' : return bracketTypes.paranthesis.open;
    case '{' : return bracketTypes.curly.close;
    case '}' : return bracketTypes.curly.open;
    case '[' : return bracketTypes.square.open;
    case ']' : return bracketTypes.square.close;
  }
}

checkBrackets(input);