导出函数fixEncoding(str){ const特殊字符={ “À;”:“阿里”, “Á;”:“á”, “Â;”:“”, “Ã;”:“Ô, “Ä;”:“ala”, “Å;”:“奥”, “à;”:“a”, “á;”:“á”, “â;”:“–”, “ã;”:“昂”, “ä;”:“ä”, “å;”:“ó”, “Æ;”:“Æ”, “æ;”:“”, “ß;”:“ß”, “[Cedil;”:“Ç”, “ç;”:“ç”, “È;”:“È”, “É;”:“ε”, “Ê;”:“á”, “Ë;”:“Ë”, “è;”:“è”, “é;”:“é”, “ê;”:“存在”, “ë;”:“è”, "ƒ": "ƒ", “Igrave;”:“宋体”, “Í;”:“Í”, “Î;”:“Δ, “Ï;”:“Ï”, “ì;”:“啊”, “í;”:“í”, “î;”:“â”, “ï;”:“ie”, “Ñ;”:“ñ”, “ñ;”:“ñ”, “Ò;”:“Ò”, “Ó;”:“奥斯”, “Ô;”:“Ô”, “Õ;”:“Õ”, “Ö;”:“Ù”, “ò;”:“”, “ó;”:“ó”, “ô;”:“ó”, “õ;”:“ö”, “ö;”:“ö”, “Ø;”:“Ø”, “ø;”:“ö”, "Œ": "Œ", "œ": "œ", "Š": "Š", "š": "š", “Ù;”:“Ù”, “Ú;”:“Ú”, “Û;”:“Û”, “Ü;”:“u”, “ù;”:“恇”, “ú;”:“u”, “û;”:“u”, “ü;”:“u”, "µ": "µ", "×": "×", “Ý;”:“Ý”, "Ÿ": "Ÿ", “ý;”:“ý”, “-yuml;”:“伊”, "°": "°", "†": "†", "‡": "‡", “<;”:“<”, “>;”:“>”, "±": "±", "«": "«", "»": "»", "¿": "¿", "¡": "¡", "·": "·", "•": "•", "™": "™", “©;”:“©”, “®;”:“®”, "§": "§", "¶": "¶", "'": "'", “";”:“”, }; 让isinclude=(str,obj)=>( (str=str.replace(“/”,“”)), Object.keys(obj).reduce((a,v)=>a||str.includes(v),false) ); 控制台.log(isinclude(str,specialChars)); for(设i=0;i<specialChars.length;i++){ if(str.includes(specialChars[str])){ console.log(str); const newStr=str.replace(`${i}`,specialChars[str]); 返回newStr; }否则返回str; } //return str.replace(/';+/g,“”).replase(/";+/g、“”); }
-
2 这回答了你的问题吗? 使用javascript将HTML字符实体转换回常规文本 – 杜韦德汉 评论 5月23日11:15 -
整个 对于 这个街区看起来乱七八糟。 特殊字符长度 不存在,很可能也不存在 特殊字符[str] ,更换 `${i}` 没有意义,循环在每个分支中返回。 – ASDFGerte公司 评论 5月23日11:23 -
@DouwedeHaan我不确定是否会这样,因为我想创建一个可以在字符串上使用的正则函数,该函数正在映射到一个对象中,我必须对此进行研究,但在当前我不确定 – 沙安德 评论 5月23日11:23 -
@ASDFGerte你能指出我是如何修复的吗? – 沙安德 评论 5月23日11:23 -
这些“特殊字符”是HTML实体。 有现成的HTML实体编码和解码流程; 您不需要用自己积累的一长串序列来重新创建它,这些序列甚至没有涵盖现有的所有可能的HTML实体。 – 减少 ♦ 评论 5月23日11:37
3个答案
函数fixEncoding(str){ const特殊字符={ “À;”:“阿里”, “´;”:“Á”, “Â;”:“”, “Ã;”:“Ô, “Ä;”:“ala”, “Å;”:“奥”, “à;”:“a”, “á;”:“á”, “â;”:“–”, “ã;”:“昂”, “ä;”:“ä”, “å;”:“ó”, “Æ;”:“Æ”, “æ;”:“”, “ß;”:“ß”, “Ç;”:“j”, “ç;”:“ç”, “È;”:“È”, “É;”:“ε”, “Ê;”:“á”, “Ë;”:“Ë”, “è;”:“è”, “é;”:“é”, “ê;”:“存在”, “ë;”:“è”, "ƒ": "ƒ", “Ì;”:“Ì”, “Í;”:“内”, “Î;”:“岛”, “Ï;”:“Ï”, “ì;”:“啊”, “í;”:“í”, “î;”:“â”, “ï;”:“ie”, “Ñ;”:“ñ”, “ñ;”:“ñ”, “Ò;”:“Ò”, “Ó;”:“奥斯”, “Ô;”:“Ô”, “Õ;”:“”, “Ouml;”:“Ö”, “ò;”:“”, “ó;”:“ó”, “ô;”:“ó”, “õ;”:“ö”, “ö;”:“ö”, “Ø;”:“Ø”, “ø;”:“ö”, "Œ": "Œ", "œ": "œ", "Š": "Š", "š": "š", “Ù;”:“Ù”, “&U急性;”:“u”, “Û;”:“Û”, “Ü;”:“u”, “ù;”:“恇”, “ú;”:“u”, “û;”:“u”, “ü;”:“u”, "µ": "µ", "×": "×", “Ý;”:“Ý”, "Ÿ": "Ÿ", “ý;”:“啊”, “ÿ;”:“”, "°": "°", "†": "†", "‡": "‡", “<;”:“<”, “>;”:“>”, "±": "±", "«": "«", "»": "»", "¿": "¿", "¡": "¡", "·": "·", "•": "•", "™": "™", “©;”:“©”, “®;”:“®”, "§": "§", "¶": "¶", "'": "'", “";”:“”, }; Object.keys(specialChars).forEach(key=>{ str=str.replace(新RegExp(key,'g'),specialChars[key]); }); 返回str; } const htmlEncodedString=“这是一个带引号和撇号(';)的编码字符串。”; const decodedString1=固定编码(htmlEncodedString); console.log(decodedString1);
const Bad=['ali','An','Ã','Ala','Au'];// 在此处添加所有不需要的字符 const Good=['A','A' 在此处添加所有替换项 for(设i=0;i<Bad.length;i++){ str=str.replaceAll(坏[i],好[i]); }