HTML: обнаружение Unicode и применение класса - PullRequest
0 голосов
/ 11 апреля 2019

Есть ли способ обнаружить юникод символа в html-файле и применить класс к ближайшему div / span?

Например, если есть div, содержащий английский (латинские символы), я хочу применить класс en к этому div. И если есть div, содержащий японские символы, я хочу применить класс 'jp' к этому div.

(если есть и то и другое, я думаю, что оба класса могут быть применены).

Ответы [ 2 ]

2 голосов
/ 11 апреля 2019

Использование divs[i].textContent.match

Использовать диапазон Unicode

Для японского Unicode

var divs = document.querySelectorAll("div");

for (var i = 0; i < divs.length; ++i) {
    if(divs[i].textContent.match(/[\u0020-\u007F]+/g)){
       divs[i].classList.add('eng');    
    }
    else if(divs[i].textContent.match(/[\u3041-\u3096]+/g)){
       divs[i].classList.add('jp');    
    }
}
.eng{
color:red;
}

.jp{
color:blue;
}
<div>english</div>
<div>良い一日を</div>

EDIT

для запроса всех тегов на странице: document.querySelectorAll("body *");

    var elements = document.querySelectorAll("body *");

    for (var i = 0; i < elements.length; ++i) {
        if(elements[i].textContent.match(/[\u0020-\u007F]+/g)){
           elements[i].classList.add('eng');    
        }
        else if(elements[i].textContent.match(/[\u3041-\u3096]+/g)){
           elements[i].classList.add('jp');    
        }
    }
    .eng{
    color:red;
    }

    .jp{
    color:blue;
    }
<div>english</div>
<div>良い一日を</div>
<span>english span</span>
<label>良い一日を</label>
0 голосов
/ 11 апреля 2019
...