2016-07-24 32 views
0

Ich versuche einige Buchstaben mit Zahlen in JQuery ersetzen, und ich habe mein Objekt wie folgt initialisiert:JavaScript - Ersetzen Sie einige Buchstaben mit Zahlen

var myVar = {'a':1, 'b':2, 'c':3, 'd':4} 

ich die Zeichenfolge aus einem Eingang bekommen und ich möchte um diese Buchstaben sofort zu konvertieren, wenn der Benutzer eine Texteingabe eingibt. Ich möchte es über RegEx tun.

+0

wo genau _regex_ – brk

+0

und was Sie ausprobiert haben? –

+0

@ user2181397Ich möchte RegEx für die Konvertierung verwenden. Ich meine, ich möchte irgendwo mein Objekt irgendwo hinbringen und den konvertierten Text bekommen. – jmosawy

Antwort

2

können Sie input Ereignis verwenden, String.prototype.replace(), RegExp() mit dem Parameter new RegExp(keys.join("|"), "g" wo keys sind Eigenschaftsnamen von myVar Objekt

var myVar = {"a":1, "b":2, "c":3, "d":4}; 
 
var keys = Object.keys(myVar); 
 
document.querySelector("input") 
 
.addEventListener("input", function(e) { 
 
    e.target.value = e.target.value.replace(new RegExp(keys.join("|"), "g") 
 
        , function(match) { 
 
         return myVar[match] 
 
        }); 
 
});
<input type="text" />

1

Verwendung:

  • Ereignis: keyup Ereignis

  • Aktion: split & join für String UND map für Array.

    $(INPUT_SELECTOR).keyup(function(event){ 
    var newVal=$(this).val().split('').map(function(ch){ 
        if(isFinite(ch) || !myVar[ch]){ 
         return ch; 
        }else{ 
         return myVar[ch]; 
        } 
    }).join(''); 
    $(this).val(newVal); 
    
    }) 
    

DEMO

+0

@jmosawy: Wenn es nicht sinnvoll ist, werde ich löschen. .Plz, lass es mich wissen –

+1

Dieser Code funktioniert auch! Als ich nach einer Lösung über RegEx suchte, wählte ich 'guest271314' als Antwort. – jmosawy

+0

gut. freundliche Grüße –

Verwandte Themen