Superscript in TextArea Jquery

by jairajdesai

HTML

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
<textarea id="text_area">
</textarea>

JavaScript

$(document).ready(function() {
  var temp = {}; // store keypresses here
  var current_value = "";
  $("#text_area").keydown(function(e) {
    temp[e.which] = true;
  });
  $('#text_area').keyup(function(e) {
    if (e.keyCode == 27 && current_value != "") {
      var length_1 = current_value.length;
      var length_without_sup = length_1 - 5;
      var substr_superstring = $('#text_area').val().substr(length_without_sup);
      var current_text_2 = current_value + substr_superstring;
      current_text_2 = current_text_2 + "</sup>";
      $('#text_area').val(current_text_2);
      $('#text_area').superScript();
			current_value = "";
    }
    var flag_shift = false;
    var flag_super = false;
    for (var key in temp) {
      if (key == 16) {
        flag_shift = true;
      } else if (key == 54) {
        flag_super = true;
      }
    }
    if (flag_shift == true && flag_super == true) {
      var current_text = $('#text_area').val();
      current_text_2 = current_text.substr(0, current_text.length - 1);
      current_text_2 = current_text_2 + "<sup>";
      $('#text_area').val(current_text_2);
      current_value = hide_superscript_tag();
    }
    delete temp[e.which];
  });
});

function hide_superscript_tag() {
  var current_value = $('#text_area').val();
  current_value_2 = current_value.substr(0, current_value.length - 5);
  $('#text_area').val(current_value_2);
  return current_value;
}
$.fn.superScript = function() {
  var chars = '+−=()0123456789AaÆᴂɐɑɒBbcɕDdðEeƎəɛɜɜfGgɡɣhHɦIiɪɨᵻɩjJʝɟKklLʟᶅɭMmɱNnɴɲɳŋOoɔᴖᴗɵȢPpɸrRɹɻʁsʂʃTtƫUuᴜᴝʉɥɯɰʊvVʋʌwWxyzʐʑʒꝯᴥβγδθφχнნʕⵡ',
    sup = '⁺⁻⁼⁽⁾⁰¹²³⁴⁵⁶⁷⁸⁹ᴬᵃᴭᵆᵄᵅᶛᴮᵇᶜᶝᴰᵈᶞᴱᵉᴲᵊᵋᶟᵌᶠᴳᵍᶢˠʰᴴʱᴵⁱᶦᶤᶧᶥʲᴶᶨᶡᴷᵏˡᴸᶫᶪᶩᴹᵐᶬᴺⁿᶰᶮᶯᵑᴼᵒᵓᵔᵕᶱᴽᴾᵖᶲʳᴿʴʵʶˢᶳᶴᵀᵗᶵᵁᵘᶸᵙᶶᶣᵚᶭᶷᵛⱽᶹᶺʷᵂˣʸᶻᶼᶽᶾꝰᵜᵝᵞᵟᶿᵠᵡᵸჼˤⵯ';

  return this.each(function() {
    this.value = this.value.replace(/<sup[^>]*>(.*?)<\/sup>/g, function(x) {
      var str = '',
        txt = $.trim($(x).unwrap().text());

      for (var i = 0; i < txt.length; i++) {
        var n = chars.indexOf(txt[i]);
  ...