相关疑难解决方法(0)

在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;
};
Run Code Online (Sandbox Code Playgroud)

但IE6让我烦恼,似乎它不喜欢我的正则表达式.

javascript diacritics

385
推荐指数
13
解决办法
22万
查看次数

Javascript Slug 也适用于非拉丁字符

基本上我找到了一个如下所示的 slug 函数:

function slug(string) => { 
    return string.toString().toLowerCase()
        .replace(/\s+/g, '-')
        .replace(/[^\w\-]+/g, '')
        .replace(/\-\-+/g, '-')
        .replace(/^-+/, '')
        .replace(/-+$/, '');
};
Run Code Online (Sandbox Code Playgroud)

但是,它似乎不适用于俄语、希腊语、...字符。基本上它们在这一步被删除了.replace(/[^\w\-]+/g, ''),我不想要但我也想删除在某些国家不代表正常字母的其他特殊字符。

例子:

English| Do you know it rains?|do-you-know-it-rains

Czech| víš, že prší?|vis-ze-prsi

Romanian| ?ti c? plou??|sti-ca-ploua

Russian| ?? ??????, ??? ???? ??????|??-??????-???-????-?????

笔记:

基本上对于拉丁字母,我将保留字母但删除变音符号,但对于非拉丁字母,我将保持原样(我不想将它们转换为拉丁字符)

javascript url friendly-url slug

2
推荐指数
1
解决办法
1489
查看次数

标签 统计

javascript ×2

diacritics ×1

friendly-url ×1

slug ×1

url ×1