2017-08-29 2 views
-1

Sur onkeyup, je souhaite remplacer les caractères accentués par des caractères non accentués. Avec ce code maintenant, je n'ai rien obtenu. Si je ne donne pas le this.value à la fonction, j'obtiens une erreur pour le split.Remplacement des caractères accentués par javascript

Je veux utiliser cette fonction pour plus d'entrée avec onkeyup, mais toujours pour cette entrée, ce que je suis en train d'écrire dans

<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; 
} 

MISE À JOUR:.

Comment puis-je écrire ToLowerCase dans ce 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

Il fonctionne ...:] – felixmosh

+0

Travaux?? Où? :) – Parkolo11

Répondre

1

Ive résoudre le problème avec un autre 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; }).toLowerCase(); 
} 
0

Il fonctionne ...

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

Mais pourquoi ça marche pour moi? Je vois ton violon, ça marche. – Parkolo11

+0

J'ai mis à jour la question! – Parkolo11

+0

utilisez simplement 'toLowerCase' natif – felixmosh