2016-07-08 33 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

propertychangeの代わりに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を実行するので、これは非効率的です。あなただけの単一の文字にマッチしている場合は、あなたのパターンで[]が必要とされていないことを

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

注:代わりに、replace()を使用して一度にある問題の文字を置き換えることができます。例えば「」に「Z」と同様に「ю」からのすべての文字を置き換えます

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

:あなたは複数の文字にマッチし、交換したいなら、あなたはこのパターンを使用することができます。

+0

私は方法はわかりませんが、実際には最初のコードが正しい方法で動作しています。これは、 'ю'文字形式の入力だけを置き換えます。ありがとうございます)https://jsfiddle.net/DronSKM/pmj0w64k/1/「ю」文字を「r」に変更してください –

+0

@BogdanTushevskyi:私はそれがどのように動作するかを説明したと思っていました。個々の文字ではなく、値です。最初のコードサンプルは、コードを修正する方法を示すものです。 2番目のコードサンプルは、より良い方法を示すことです。 2番目の方法は効率的で短くなっているので、それを使用することをお勧めします。 – mhawke

関連する問題