在按键事件中删除最后添加的特定符号?

时间:2018-11-19 15:34:19

标签: javascript jquery html

好吧,我有一个输入字段,如果有人写,我想删除破折号(-)。这是我的代码:

$( "#ownerEntrance" ).on( "keydown", function( event ) {
    var value = $( "#ownerEntrance" ).val();
    if (event.type=="keydown" && event.which == '189') { // 189 for - symbol
        $( "#ownerEntrance" ).val(value.substr(0, value.length - 1));
    }
});

但是现在它删除破折号前的符号。我可以解决吗?谢谢!

1 个答案:

答案 0 :(得分:1)

replace事件中使用此正则表达式/(-)/g尝试keyup

$('#no-dash').on('keyup', function() {
  let $this = $(this);
  
  $this.val($this.val().replace(/(-)/g, ''));
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="no-dash">

这将删除所有破折号,即使在粘贴时也是如此(通过键盘)。您可以添加change事件以任何方式将其删除。