我正在尝试替换错误的输入表单输入字段。这是使这个代码有效的方法吗?
<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
答案 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'以及'ю'。