Javascript中区分大小写的重音折叠

use*_*491 7 javascript regex diacritics

你写了这段代码:

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)

我想如果回答我的问题,请.如果我想要大字符(例如:ÁÉ - > AE等),那么我必须更改代码.非常感谢你!

Cha*_*ion 2

这应该有效:

\n\n
function purifyString(value) {\n    var r = [];\n    for (var i = 0, length = value.length; i < length; i++) {\n        r.push(replaceCharacter(value.charAt(i)));\n    }\n    return r.join("");\n}\n\nfunction replaceCharacter(character) {\n    switch (character) {\n        case \'\\r\': return "\\r";\n        case \'\\n\': return "\\n";\n        case \'\\t\': return "\\t";\n        case \'\\f\': return "\\r\\n";\n        case \'\\v\': return "\\r\\n";\n        case \'`\': return "\'";\n        case \'\xe2\x82\xac\': return "_";\n        case \'\xe2\x80\x9a\': return ",";\n        case \'\xc6\x92\': return "f";\n        case \'\xe2\x80\x9e\': return "\\"";\n        case \'\xe2\x80\xa6\': return "...";\n        case \'\xe2\x80\xa0\': return "_";\n        case \'\xe2\x80\xa1\': return "_";\n        case \'\xcb\x86\': return "^";\n        case \'\xe2\x80\xb0\': return "%";\n        case \'\xc5\xa0\': return "S";\n        case \'\xe2\x80\xb9\': return "<";\n        case \'\xc5\x92\': return "CE";\n        case \'\xc5\xbd\': return "Z";\n        case \'\xe2\x80\x98\': return "\'";\n        case \'\xe2\x80\x99\': return "\'";\n        case \'\xe2\x80\x9c\': return "\\"";\n        case \'\xe2\x80\x9d\': return "\\"";\n        case \'\xe2\x80\xa2\': return "-";\n        case \'\xe2\x80\x93\': return "-";\n        case \'\xe2\x80\x94\': return "-";\n        case \'\xcb\x9c\': return "~";\n        case \'\xe2\x84\xa2\': return "(tm)";\n        case \'\xc5\xa1\': return "s";\n        case \'\xe2\x80\xba\': return ">";\n        case \'\xc5\x93\': return "ce";\n        case \'\xc5\xbe\': return "z";\n        case \'\xc5\xb8\': return "Y";\n        case \'\xc2\xa1\': return "i";\n        case \'\xc2\xa5\': return "Y";\n        case \'\xc2\xa6\': return "|";\n        case \'\xc2\xaa\': return "a";\n        case \'\xc2\xac\': return "-";\n        case \'\xc2\xaf\': return "-";\n        case \'\xc2\xb2\': return "2";\n        case \'\xc2\xb3\': return "3";\n        case \'\xc2\xb4\': return "\'";\n        case \'\xc2\xb8\': return ",";\n        case \'\xc2\xb9\': return "1";\n        case \'\xc2\xba\': return "0";\n        case \'\xc2\xbc\': return "1/4";\n        case \'\xc2\xbd\': return "1/2";\n        case \'\xc2\xbe\': return "3/4";\n        case \'\xc2\xbf\': return "?";\n        case \'\xc3\x80\': return "A";\n        case \'\xc3\x81\': return "A";\n        case \'\xc3\x82\': return "A";\n        case \'\xc3\x83\': return "A";\n        case \'\xc3\x84\': return "A";\n        case \'\xc3\x85\': return "A";\n        case \'\xc3\x86\': return "AE";\n        case \'\xc3\x87\': return "C";\n        case \'\xc3\x88\': return "E";\n        case \'\xc3\x89\': return "E";\n        case \'\xc3\x8a\': return "E";\n        case \'\xc3\x8b\': return "E";\n        case \'\xc3\x8c\': return "I";\n        case \'\xc3\x8d\': return "I";\n        case \'\xc3\x8e\': return "I";\n        case \'\xc3\x8f\': return "I";\n        case \'\xc3\x90\': return "D";\n        case \'\xc3\x91\': return "N";\n        case \'\xc3\x92\': return "O";\n        case \'\xc3\x93\': return "O";\n        case \'\xc3\x94\': return "O";\n        case \'\xc3\x95\': return "O";\n        case \'\xc3\x96\': return "O";\n        case \'\xc3\x97\': return "x";\n        case \'\xc3\x98\': return "O";\n        case \'\xc3\x99\': return "U";\n        case \'\xc3\x9a\': return "U";\n        case \'\xc3\x9b\': return "U";\n        case \'\xc3\x9c\': return "U";\n        case \'\xc3\x9d\': return "Y";\n        case \'\xc3\x9f\': return "B";\n        case \'\xc3\xa0\': return "a";\n        case \'\xc3\xa1\': return "a";\n        case \'\xc3\xa2\': return "a";\n        case \'\xc3\xa3\': return "a";\n        case \'\xc3\xa4\': return "a";\n        case \'\xc3\xa5\': return "a";\n        case \'\xc3\xa6\': return "ae";\n        case \'\xc3\xa7\': return "c";\n        case \'\xc3\xa8\': return "e";\n        case \'\xc3\xa9\': return "e";\n        case \'\xc3\xaa\': return "e";\n        case \'\xc3\xab\': return "e";\n        case \'\xc3\xac\': return "i";\n        case \'\xc3\xad\': return "i";\n        case \'\xc3\xae\': return "i";\n        case \'\xc3\xaf\': return "i";\n        case \'\xc3\xb1\': return "n";\n        case \'\xc3\xb2\': return "o";\n        case \'\xc3\xb3\': return "o";\n        case \'\xc3\xb4\': return "o";\n        case \'\xc3\xb5\': return "o";\n        case \'\xc3\xb6\': return "o";\n        case \'\xc3\xb7\': return "/";\n        case \'\xc3\xb8\': return "o";\n        case \'\xc3\xb9\': return "u";\n        case \'\xc3\xba\': return "u";\n        case \'\xc3\xbb\': return "u";\n        case \'\xc3\xbc\': return "u";\n        case \'\xc3\xbd\': return "y";\n        case \'\xc3\xbf\': return "y";\n        case \'\xc2\xa9\': return "(c)";\n        case \'\xc2\xae\': return "(r)";\n        default: return "";\n    }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

  • @Kasturi - 我打赌你有很多朋友。 (3认同)