通过将replace()应用于合适的正则表达式,避免使用' - '作为用户输入

时间:2015-06-29 10:30:14

标签: javascript html regex

我有一个javascript函数替换找到的所有“ - ”。但它只会取代键盘Num输入的“ - ”。我认为将其他视图作为字母数字字符引入。我知道这是因为通过这个link,字符代码是不同的。我的代码:http://jsfiddle.net/cqrjjzn8/2/

$(document).ready(function () {    
    $('input').keyup(function(e) {

        var code = e.keyCode || e.which;
        if(code == 109 || code == 189) { //Enter keycode
           //Do something
            var valor = $(this).val();
            $(this).val(valor.replace(/[-]/g, ''))
            //$(this).val(valor.replace(/[-]/w, '')) // MY "-" alpha numeric
        }
    });

我的问题是我无法找到正确的正则表达式。

注意:所有键盘都不会出现此问题,因此所有电脑都不会出现此问题

4 个答案:

答案 0 :(得分:3)

试试这段代码:

$('input').keypress(function(e) {

 var code = e.keyCode || e.which;
        console.log(code)
 if(code == 45) { //Enter keycode       
    return false
 }
});

您可以在此测试:jsFiddle

请检查所有密钥代码here,因为我们为不同的事件类型提供了不同的密钥代码。

希望它适合你。

答案 1 :(得分:1)

您并不真正需要代码的.change()部分。以下(仅keyup()部分)对我来说很好:

$('input').keyup(function(e) {
    var valor = $(this).val();
    $(this).val(valor.replace(/[-]/g, ''))
});

见这里:http://jsfiddle.net/t9myunhv/

或者对于我们这些在打字代码方面更懒惰的人来说:

$('input').keyup(function(e) {
  with ($(this)) val(val().replace(/-/g, ''));
});

http://jsfiddle.net/t9myunhv/2/

答案 2 :(得分:1)

尝试这样的事情:

var valor = $(this).val();
valor = valor.replace(/-/g, '');

希望这适合你。

答案 3 :(得分:1)

$('input').on('keyup', function(e) {
    var code = e.keyCode || e.which;
    if(code == 173) {
        //Enter keycode
        //Do something
        var valor = $(this).val();
        $(this).val(valor.replace(/[-]/g, ''))
   }  
});

查看http://jsfiddle.net/emnity/cqrjjzn8/9/