Как определить, что внутри div есть большинство символов на арабском или латинице? - PullRequest
0 голосов
/ 01 июля 2018

Я хочу добавить атрибут направления RTL / LTR в теги DIV или Paragraphs HTML в зависимости от количества символов, будь то арабские или латинские символы.

Я пытаюсь сделать это с помощью JavaScript и ищу символы с помощью регулярных выражений.

Я нашел это на GitHub https://github.com/miladd3/automatic-direction/blob/master/automatic-direction.js который будет делать именно то, что я хочу, но это работает только для форм ввода

Я не знаю JS, я не могу понять, как использовать тот же код из GitHub для подсчета символов в тегах HTML и добавления атрибута RTL / LTR.

Любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 01 июля 2018

Чтобы этот скрипт работал для всех элементов с классом .dir-auto, вы должны изменить его следующим образом:

window.addEventListener('load', function() {
    var elements = [].slice.call(document.querySelectorAll('.dir-auto'));
    elements.forEach(function(el) {
        var text = el.innerText,
            farsiChars = text.match(/[\u0600-\u06FF]/g),
            spaceChars = text.match(/\s/g),
            count = text.length,
            farsiCount = farsiChars ? farsiChars.length : 0
            spaceCount = spaceChars ? spaceChars.length : 0,
            latinCount = count - farsiCount - spaceCount;
        el.setAttribute('dir', (farsiCount > latinCount) ? 'rtl' : 'ltr');
    });
});
...