尝试创建一个辅助函数来替换字符串中的特殊字符

问题描述 投票:0回答:1

因此,正如问题所述,我正在尝试构建一个小辅助函数来捕获并修复特殊字符,我不确定该去哪里,所以选择了一个包含字符的对象,检查它是否是包含,如果包含,则将字符串中的字符替换为适当的对象条目。

但是我现在陷入困境,我已经得到了该对象并检查它是否确实包含在内。我只是不知道如何定位那段字符串,然后替换它。我尝试使用包含和替换,但似乎不起作用。

这是我的代码:

export function fixEncoding(str) {
  const specialChars = {
    "À": "À ",
    "Á": "Á",
    "Â": "Â",
    "Ã": "Ã",
    "Ä": "Ä",
    "Å": "Å",
    "à": "à",
    "á": "á",
    "â": "â",
    "ã": "ã",
    "ä": "ä",
    "å": "å",
    "Æ": "Æ",
    "æ": "æ",
    "ß": "ß",
    "Ç": "Ç",
    "ç": "ç",
    "È": "È",
    "É": "É",
    "Ê": "Ê",
    "Ë": "Ë",
    "è": "è",
    "é": "é",
    "ê": "ê",
    "ë": "ë",
    "ƒ": "ƒ",
    "Ì": "Ì",
    "Í": "Í",
    "Î": "Î",
    "Ï": "Ï",
    "ì": "ì",
    "í": "í",
    "î": "î",
    "ï": "ï",
    "Ñ": "Ñ",
    "ñ": "ñ",
    "Ò": "Ò",
    "Ó": "Ó",
    "Ô": "Ô",
    "Õ": "Õ",
    "Ö": "Ö",
    "ò": "ò",
    "ó": "ó",
    "ô": "ô",
    "õ": "õ",
    "ö": "ö",
    "Ø": "Ø",
    "ø": "ø",
    "Œ": "Œ",
    "œ": "œ",
    "Š": "Š",
    "š": "š",
    "Ù": "Ù",
    "Ú": "Ú",
    "Û": "Û",
    "Ü": "Ü",
    "ù": "ù",
    "ú": "ú",
    "û": "û",
    "ü": "ü",
    "µ": "µ",
    "×": "×",
    "Ý": "Ý",
    "Ÿ": "Ÿ",
    "ý": "ý",
    "ÿ": "ÿ",
    "°": "°",
    "†": "†",
    "‡": "‡",
    "&lt;": "<",
    "&gt;": ">",
    "&#177;": "±",
    "&#171;": "«",
    "&#187;": "»",
    "&#191;": "¿",
    "&#161;": "¡",
    "&#183;": "·",
    "&#149;": "•",
    "&#153;": "™",
    "&copy;": "©",
    "&reg;": "®",
    "&#167;": "§",
    "&#182;": "¶",
    "&#039;": "'",
    "&quot;": '"',
  };

  let isinclude = (str, obj) => (
    (str = str.replace("/", "")),
    Object.keys(obj).reduce((a, v) => a || str.includes(v), false)
  );

  console.log(isinclude(str, specialChars));

  for (let i = 0; i < specialChars.length; i++) {
    if (str.includes(specialChars[str])) {
      console.log(str);
      const newStr = str.replace(`${i}`, specialChars[str]);
      return newStr;
    } else return str;
  }

  // return str.replace(/&#039;+/g, "'").replace(/&quot;+/g, '"');
}

javascript string encoding
1个回答
0
投票

您不需要对象来完成像角色替换这样简单的事情。

const  Bad=['À','Á','Â','Ã','Ä','Å']; // add all your undesirable chars here

const Good=['A','A','A','A','A','A']; // add all their replacements here


for (let i=0; i<Bad.length; i++) {

 str=str.replaceAll(Bad[i],Good[i]);

}
© www.soinside.com 2019 - 2024. All rights reserved.