title: Auto format phone number in JavaScript (not JQuery)
body: <p>I found the following code for formatting the phone number in JavaScript on <a href="https://stackoverflow.com/questions/45471788/formatting-the-phone-number-for-multiple-asptextbox-in-javascript"><strong>this post from stack overflow</strong></a> but it is not in U.S standard format and I want the space after closing ')'</p>
  
  <p>i.e. The following code gave me output <strong>(123)456-7890</strong> but I want <strong>(123) 456-7890</strong>, want to include space after the closing ')'. I tried it but no luck. </p>
  
  <pre><code>&lt;script type="text/javascript"&gt;
      //Phone validation
      var zChar = new Array(' ', '(', ')', '-', '.');
      var maxphonelength = 13;
      var phonevalue1;
      var phonevalue2;
      var cursorposition;
  
      function ParseForNumber1(object) {
          phonevalue1 = ParseChar(object.value, zChar);
      }
      function ParseForNumber2(object) {
          phonevalue2 = ParseChar(object.value, zChar);
      }
  
      function backspacerUP(object, e) {
          if (e) {
              e = e
          } else {
              e = window.event
          }
          if (e.which) {
              var keycode = e.which
          } else {
              var keycode = e.keyCode
          }
  
          ParseForNumber1(object)
  
          if (keycode &gt;= 48) {
              ValidatePhone(object)
          }
      }
  
      function backspacerDOWN(object, e) {
          if (e) {
              e = e
          } else {
              e = window.event
          }
          if (e.which) {
              var keycode = e.which
          } else {
              var keycode = e.keyCode
          }
          ParseForNumber2(object)
      }
  
      function GetCursorPosition() {
  
          var t1 = phonevalue1;
          var t2 = phonevalue2;
          var bool = false
          for (i = 0; i &lt; t1.length; i++) {
              if (t1.substring(i, 1) != t2.substring(i, 1)) {
                  if (!bool) {
                      cursorposition = i
                      bool = true
                  }
              }
          }
      }
  
      function ValidatePhone(object) {
  
          var p = phonevalue1
  
          p = p.replace(/[^\d]*/gi, "")
  
          if (p.length &lt; 3) {
              object.value = p
          } else if (p.length == 3) {
              pp = p;
              d4 = p.indexOf('(')
              d5 = p.indexOf(')')
              if (d4 == -1) {
                  pp = "(" + pp;
              }
              if (d5 == -1) {
                  pp = pp + ")";
              }
              object.value = pp;
          } else if (p.length &gt; 3 &amp;&amp; p.length &lt; 7) {
              p = "(" + p;
              l30 = p.length;
              p30 = p.substring(0, 4);
              p30 = p30 + ")"
  
              p31 = p.substring(4, l30);
              pp = p30 + p31;
  
              object.value = pp;
  
          } else if (p.length &gt;= 7) {
              p = "(" + p;
              l30 = p.length;
              p30 = p.substring(0, 4);
              p30 = p30 + ")"
  
              p31 = p.substring(4, l30);
              pp = p30 + p31;
  
              l40 = pp.length;
              p40 = pp.substring(0, 8);
              p40 = p40 + "-"
  
              p41 = pp.substring(8, l40);
              ppp = p40 + p41;
  
              object.value = ppp.substring(0, maxphonelength);
          }
  
          GetCursorPosition()
  
          if (cursorposition &gt;= 0) {
              if (cursorposition == 0) {
                  cursorposition = 2
              } else if (cursorposition &lt;= 2) {
                  cursorposition = cursorposition + 1
              } else if (cursorposition &lt;= 5) {
                  cursorposition = cursorposition + 2
              } else if (cursorposition == 6) {
                  cursorposition = cursorposition + 2
              } else if (cursorposition == 7) {
                  cursorposition = cursorposition + 4
                  e1 = object.value.indexOf(')')
                  e2 = object.value.indexOf('-')
                  if (e1 &gt; -1 &amp;&amp; e2 &gt; -1) {
                      if (e2 - e1 == 4) {
                          cursorposition = cursorposition - 1
                      }
                  }
              } else if (cursorposition &lt; 11) {
                  cursorposition = cursorposition + 3
              } else if (cursorposition == 11) {
                  cursorposition = cursorposition + 1
              } else if (cursorposition &gt;= 12) {
                  cursorposition = cursorposition
              }
  
              var txtRange = object.createTextRange();
              txtRange.moveStart("character", cursorposition);
              txtRange.moveEnd("character", cursorposition - object.value.length);
              txtRange.select();
          }
  
      }
  
      function ParseChar(sStr, sChar) {
          if (sChar.length == null) {
              zChar = new Array(sChar);
          }
          else zChar = sChar;
  
          for (i = 0; i &lt; zChar.length; i++) {
              sNewStr = "";
  
              var iStart = 0;
              var iEnd = sStr.indexOf(sChar[i]);
  
              while (iEnd != -1) {
                  sNewStr += sStr.substring(iStart, iEnd);
                  iStart = iEnd + 1;
                  iEnd = sStr.indexOf(sChar[i], iStart);
              }
              sNewStr += sStr.substring(sStr.lastIndexOf(sChar[i]) + 1, sStr.length);
  
              sStr = sNewStr;
          }
  
          return sNewStr;
      }
  &lt;/script&gt;
  </code></pre>
  
  <p>I am trying to use this function in multiple phone textboxes and all those are in <code>asp:Textbox</code>.</p>