HTML:检测Unicode并应用类

时间:2019-04-11 08:01:20

标签: html css unicode lang

是否可以检测html文件中字符的unicode并将类应用于最近的div / span?

例如,如果有一个包含英语(拉丁字符)的div,我想将“ en”类应用于该div。并且如果有一个包含日语字符的div,我想在该div上应用“ jp”类。

(如果这两个都存在,那么我猜这两个类都可以应用)。

2 个答案:

答案 0 :(得分:2)

使用divs[i].textContent.match

Use unicode range

For japanese 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>

编辑

查询页面使用的所有标签: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>

答案 1 :(得分:0)

有一个script property in Unicode regexes。您可以编写/^(\p{script=Han}|\p{script=Hiragana}|\p{script=Katakana})+$/来匹配日语书写中出现的字符。