从输入字段替换错误的输入

时间:2016-07-08 00:22:18

标签: javascript jquery input

我正在尝试替换错误的输入表单输入字段。这是使这个代码有效的方法吗?

<span class="input-bet">
  <input type="text" placeholder="0" data-required="true" maxlength='6'/>
</span>

$('.input-bet > input').on('input propertychange paste', function(e) {
 var youreg = /^[ю]+/gi;
 for (var i = 0;i<this.value.length;i++){
     if(this.value[i].match(youreg)){
         this.value[i] = this.value[i].replace(youreg, '.');
     }
 }

如果有人需要 - 这是工作解决方案 fiddle

1 个答案:

答案 0 :(得分:1)

您无法在文本输入元素的值中指定单个字符。但是,您可以替换值。您的脚本可以更改为:

$('.input-bet > input').on('input propertychange paste', function(e) {
 var youreg = /ю/gi;
 for (var i=0; i<this.value.length; i++){
     if (this.value[i].match(youreg)) {
         this.value = this.value.replace(youreg, '.');
     }
 }});

但这是低效的,因为它为每个角色执行正则表达式match。相反,您可以使用replace()一次性替换有问题的字符:

$('.input-bet > input').on('input propertychange paste', function(e) {
    this.value = this.value.replace(/ю/ig, '.');
});

请注意,如果只匹配单个字符,则不需要模式中的[]。如果要匹配并替换多个字符,则可以使用此模式:

this.value = this.value.replace(/[a-zю]/ig, '.');
例如,

将所有字符从'a'替换为'z'以及'ю'。