正则表达式用零替换O(jQuery输入掩码)

时间:2020-05-26 13:09:48

标签: jquery regex masking

我正在使用出色的Igor Escobar Jquery mask插件。 (https://igorescobar.github.io/jQuery-Mask-Plugin/

在输入字段中,我希望这样做,以便用户输入字母O或o(大写或小写字母“ o”)时,它会被替换为零(0)。

使用文档,我可以通过使用翻译来修改正则表达式: $('#myfield').mask('ooo-ooo', {'translation': {'o': {pattern: /^[a-zA-Z0-9]*$/}}});

此正则表达式模式允许使用任何字母数字字符,这很棒。但是,我需要修改此正则表达式,以便将“ O”和“ o”转换为0(零)。

是否可以仅通过使用正则表达式(我不太熟悉)来做到这一点?还是我在文档中错过了更好的Jquery mask功能来做到这一点?

如果输入的话,基本上是用一个不同的字符替换两个特定的字符。 非常感谢。

更新: 多亏了freedom-m向我指出了回调功能的方向,我使用了一些精巧的JavaScript来完成此工作:

var options =  {

  // Replace Os with Zeros
  onKeyPress: function(cep, options){
    var lastChar = cep[cep.length -1];
    if (lastChar=="o" || lastChar=="O") { 
        var newreplace = cep.substring(0, cep.length - 1);
        $('#myfield').val(newreplace + '0'); 
    }
  }
};

$('#myfield').mask('AAA-AAA', options);

0 个答案:

没有答案