JSFiddle - React, Tailwind, and code Playground

HTML

<input type="text" id="nobackspace" value="909-345-5564"/>

JavaScript

function getCaret(el) { 
  if (el.selectionStart) { 
    return el.selectionStart; 
  } else if (document.selection) { 
    el.focus(); 

    var r = document.selection.createRange(); 
    if (r == null) { 
      return 0; 
    } 

    var re = el.createTextRange(), 
        rc = re.duplicate(); 
    re.moveToBookmark(r.getBookmark()); 
    rc.setEndPoint('EndToStart', re); 

    return rc.text.length; 
  }  
  return 0; 
}

var nobackspace = ['-'];
$('#nobackspace').keydown(function(e) {
   if(e.keyCode == 8) {//backspace key was pressed
      var pos = getCaret(this);
      
      if(pos > 0) pos--; 
       
      if(!jQuery.inArray($(this).val().charAt(pos), nobackspace)) e.preventDefault();
   }
});