删除JavaScript字符串中的重音/对话框如何从字符串中删除重音字符?尤其是在IE6中,我遇到了这样的情况:accentsTidy = function(s){
var r=s.toLowerCase();
r = r.replace(new RegExp(/\s/g),"");
r = r.replace(new RegExp(/[àáâãäå]/g),"a");
r = r.replace(new RegExp(/æ/g),"ae");
r = r.replace(new RegExp(/ç/g),"c");
r = r.replace(new RegExp(/[èéêë]/g),"e");
r = r.replace(new RegExp(/[ìíîï]/g),"i");
r = r.replace(new RegExp(/ñ/g),"n");
r = r.replace(new RegExp(/[òóôõö]/g),"o");
r = r.replace(new RegExp(/œ/g),"oe");
r = r.replace(new RegExp(/[ùúûü]/g),"u");
r = r.replace(new RegExp(/[ýÿ]/g),"y");
r = r.replace(new RegExp(/\W/g),"");
return r;};但是IE6困扰着我,似乎它不喜欢我的正则表达式。
3 回答
Cats萌萌
TA贡献1805条经验 获得超9个赞
const str = "Crème Brulée"str.normalize('NFD').replace(/[\u0300-\u036f]/g, "")> 'Creme Brulee'
normalize()
使. NFD
Unicode范式将组合的图形素分解为简单图形的组合。这个 è
的 Crème
最后表示为 e
+̀
.使用正则表达式 要匹配U+0300→U+036F范围,现在只需 g
Lobally摆脱了Unicode标准方便地将其分组为 Unicode块
或者,如果你只想排序
const c = new Intl.Collator();['creme brulee', 'crème brulée', 'crame brulai', 'crome brouillé','creme brulay', 'creme brulfé', 'creme bruléa'].sort(c.compare)[ 'crame brulai','creme brulay','creme bruléa','creme brulee','crème brulée','creme brulfé','crome brouillé' ]['creme brulee', 'crème brulée', 'crame brulai', 'crome brouillé'].sort((a,b) => a>b)["crame brulai", "creme brulee", "crome brouillé", "crème brulée"]
添加回答
举报
0/150
提交
取消