2016-07-08 3 views
0

Я пытаюсь заменить неправильное поле ввода входной формы. Это какой-либо способ заставить этот код работать?заменить неправильный ввод из поля ввода

<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

Вы можете разместить здесь свой html? – theinarasu

+0

вы должны использовать изменения вместо change. – theinarasu

ответ

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, '.'); 

который, например, будет заменить все символы от «а» до «Z», а также «» ю.

+0

Я не знаю, как, но на самом деле ваш первый код работает правильно. Он заменяет только входной символ символа «ю». Большое спасибо) Вы можете попробовать это здесь https://jsfiddle.net/DronSKM/pmj0w64k/1/ i изменить символ 'ю' на 'r' –

+0

@BogdanTushevskyi: Я думал, что объяснил, как это работает: замените весь а не отдельные символы. Первый пример кода - показать, как ваш код может быть исправлен. Второй пример кода - показать лучший способ сделать это. Второй способ более эффективен и короче, поэтому я рекомендую использовать его. – mhawke