partyzanx
@partyzanx

Как внедрить функцию replace?

Есть вот такой рабочий скрипт

<script>
;(function(){
 var player = new Audio()
 var buttons = document.querySelectorAll('div.mm div')
 buttons.forEach(btn => btn.addEventListener('click', play))

 function play(evt) {
 let sound = evt.target.textContent // текст из дива
 let title = evt.target.title // из title
 player.src = `https://d2mllj54g854r4.cloudfront.net/chinese_static/audio/alicia/${sound}${title}.mp3`
 player.play();
 }
})();
</script>


Но он работает только если такой html
<div class="mm">
 
<div title="1">a</div><div title="2">a</div><div title="3">a</div><div title="4">a</div>

</div>


Как сделать, чтобы следующий html заработал, использую функцию replace('á','a') replace('á','a') replace('à','a') replace('ǎ','a')
<div class="mm">
 
<div title="1">ā</div><div title="2">á</div><div title="3">ǎ</div><div title="4">à</div>

</div>


Stalker_RED
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
Stalker_RED
@Stalker_RED
Можно конечно и по одной букве заменять, но букв много разных, и можно чуток оптимизировать:
var str = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÕÖØòóôõöøÈÉÊËèéêëðÇçÐÌÍÎÏìíîïÙÚÛÜùúûüÑñŠšŸÿýŽž" // это не все!
var result = str.replace(/[àáâãäå]/g, 'a') // заменять пачками
                .replace(/[èéêë]/g , 'e')
                .replace(/[ìíîï]/g, 'i')
                  // ...


Готовая библиотека с огромной таблицей символов semplicewebsites.com/removing-accents-javascript
Предположительно, самое(?) быстрое решение: https://stackoverflow.com/a/18391901
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы