2017-08-29 1 views
-1

On onkeyup, ich möchte akzentuierte Zeichen zu nicht akzentuierten Zeichen ersetzen. Mit diesem Code habe ich jetzt nichts bekommen. Wenn ich die this.value der Funktion nicht gebe, erhalte ich einen Fehler für die split.Akzentbuchstaben mit Javascript ersetzen

Ich möchte diese Funktion mit onkeyup für mehr Input verwenden, aber immer für diesen Eingang, was ich schreibe in

<input onKeyUp="RemoveAccents(this.value);" type="text" required name="termek_seo" class="product-name" value="<?php echo isset($_POST["termek_seo"])?$_POST["termek_seo"]:""; ?>" /> 



    function RemoveAccents(strAccents) 
{ 
    var strAccents = strAccents.split(''); 
    var strAccentsOut = new Array(); 
    var strAccentsLen = strAccents.length; 
    var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž'; 
    var accentsOut = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz"; 
    for (var y = 0; y < strAccentsLen; y++) 
    { 
     if (accents.indexOf(strAccents[y]) != -1) 
     { 
      strAccentsOut[y] = accentsOut.substr(accents.indexOf(strAccents[y]), 1); 
     } 
     else 
     { 
      strAccentsOut[y] = strAccents[y]; 
     } 
    } 
    strAccentsOut = strAccentsOut.join(''); 
    return strAccentsOut; 
} 

UPDATE:.

Wie kann ich schreiben die toLowerCase in dieser Code?

function RemoveAccents(s) 
{ 
    var i = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖŐòóôõöőÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜŰùúûüűÑñŠšŸÿýŽž'.split(''); 
    var o = 'AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUUuuuuuNnSsYyyZz'.split(''); 
    var map = {}; 
    i.forEach(function(el, idx) {map[el] = o[idx]}); 
    return s.replace(/[^A-Za-z0-9]/g, function(ch) { return map[ch] || ch; }) 
} 
+0

Es funktioniert einfach ...:] – felixmosh

+0

Arbeiten? Woher? :) – Parkolo11

Antwort

1

Ive, das Problem mit einem anderen Code lösen:

function RemoveAccents(s) 
{ 
    var i = 'ĂĂĂĂĂĂà åâãäüĂĂĂĂĂĂĹòóôþÜĹĂĂĂĂèÊêÍðĂçĂĂĂĂĂĂŹĂ­ĂŽĂŻĂĂĂĂŰÚúÝߏĂùŠťŸÿýŽŞ+_.:;[]()/*"<> '.split(''); 
    var o = 'AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUUuuuuuNnSsYyyZz---------------'.split(''); 
    var map = {}; 
    i.forEach(function(el, idx) {map[el] = o[idx]}); 
    return s.replace(/[^A-Za-z0-9]/g, function(ch) { return map[ch] || ch; }).toLowerCase(); 
} 
0

Es funktioniert einfach ...

function RemoveAccents(strAccents) { 
 
    var strAccents = strAccents.split(''); 
 
    var strAccentsOut = new Array(); 
 
    var strAccentsLen = strAccents.length; 
 
    var accents = 'ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž'; 
 
    var accentsOut = "AAAAAAaaaaaaOOOOOOOooooooEEEEeeeeeCcDIIIIiiiiUUUUuuuuNnSsYyyZz"; 
 
    for (var y = 0; y < strAccentsLen; y++) { 
 
    if (accents.indexOf(strAccents[y]) != -1) { 
 
     strAccentsOut[y] = accentsOut.substr(accents.indexOf(strAccents[y]), 1); 
 
    } else { 
 
     strAccentsOut[y] = strAccents[y]; 
 
    } 
 
    } 
 
    strAccentsOut = strAccentsOut.join(''); 
 
    console.log(strAccentsOut); 
 
    return strAccentsOut; 
 
}
<input onKeyUp="RemoveAccents(this.value);" type="text" required name="termek_seo" class="product-name" value="ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž" />

+0

Aber warum funktioniert es für mich? Ich sehe deine Geige, das funktioniert. – Parkolo11

+0

Ich habe die Frage aktualisiert! – Parkolo11

+0

verwenden Sie einfach native 'toLowerCase' – felixmosh