2017-08-29 44 views
-1

上的onkeyup重音符號,我想更換重音符號,以非重音。現在這個代碼,我沒有得到任何東西。如果我不給this.value的功能,我得到了split錯誤。更換使用javascript

我想要使用此功能與的onkeyup更多的投入,但總是爲輸入,什麼我寫在

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

更新:

我怎麼能寫在與toLowerCase這個代碼?

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

這只是工作...:] – felixmosh

+0

作品??哪裏? :) – Parkolo11

回答

1

伊夫解決問題與另一個代碼:

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

這只是工作...

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

但爲什麼doens它爲我工作?我看到你的小提琴,這是有效的。 – Parkolo11

+0

我更新了這個問題! – Parkolo11

+0

只使用本地'toLowerCase' – felixmosh