2017-03-08 11 views
1

アクセント記号でアクセント記号に置き換えようとしていますが、アクセント記号ではありません。誰かがアイデアを持っていますか?ありがとうございますアクセントで文字を変更する

function epurer_code(texte) { 
    var pattern_accent = new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "û", "ü", "ô", "ó", "ö"); 
    var pattern_replace_accent = new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "u", "u", "o", "o", "o"); 
    texte.value = texte.value.preg_replace(pattern_accent, pattern_replace_accent, texte.value); 
} 

<TEXTAREA style="color:black;" name="Body" id="Body" value="" rows="6" cols="60" maxlength="160" onkeyup="supaccent(this);"></TEXTAREA> 
+1

あなたはから 'preg_replace'何を得るのですか? – Brian

+0

私はあなたの探してforfor str_replace –

答えて

3

解決方法は次のとおりです。 textareaのコンテンツは、すべてkeyupイベントで動的に置き換えられます。

var elem = document.getElementById('Body'); 
 

 
function clean() { 
 
    var mapObj = { 
 
    "é": 'e', 
 
    "ó": 'o', 
 
    "ç": 'c', 
 
    "è": 'e', 
 
    "ê": 'e', 
 
    "ç": 'c' 
 
    //and so on...  
 
    } 
 
    elem.value = elem.value.replace(/[éèêëçàâäîïùûüôóö]/g, match => mapObj[match]); 
 
}
<TEXTAREA style="color:black;" name="Body" id="Body" value="" rows="6" cols="60" maxlength="160" onkeyup="clean()"></TEXTAREA>

+1

大丈夫だと思います!どうもありがとうございました !!あなたは最高です:D – Chrys

1

ちょうどあなたのコードを変更しました。 pattern_accent配列を使用して正規表現pattern_expを作成します。置換パターンマッチメソッドでは、pattern_accent配列に一致するアクセントの位置を取得し、pattern_replace_accent配列の同じ位置にアクセントを戻しています。

function supaccent(texte) { 
 
    var pattern_accent = new Array("é", "è", "ê", "ë", "ç", "à", "â", "ä", "î", "ï", "ù", "û", "ü", "ô", "ó", "ö"); 
 
    var pattern_replace_accent = new Array("e", "e", "e", "e", "c", "a", "a", "a", "i", "i", "u", "u", "u", "o", "o", "o"); 
 

 
    var pattern_exp = new RegExp('['+pattern_accent.join()+']', 'g') 
 

 
    texte.value = texte.value.replace(pattern_exp, function(match){ 
 
     var index = pattern_accent.indexOf(match); 
 
     return index>=0?pattern_replace_accent[index]:match; 
 
    }); 
 
}
<TEXTAREA style="color:black;" name="Body" id="Body" value="" rows="6" cols="60" maxlength="160" onkeyup="supaccent(this);"></TEXTAREA>

+0

ありがとうございました^^ – Chrys

関連する問題