JavaScript의 문자열에서 악센트/분음 부호 제거
이 문서에서는 JavaScript의 문자열에서 악센트나 발음 구별 부호를 제거하는 기술에 대해 자세히 설명합니다. IE6에서 정기적으로 직면한 문제
ES2015/ES6 String.prototype.normalize() 사용
ES2015/ES6에서는 String.prototype.normalize() 메서드를 도입하여 다음을 제거할 수 있습니다. 발음 구별 부호. 예:
const str = "Crème Brûlée"; const normalized = str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); console.log(normalized); // Output: "Creme Brulee"
"NFD"는 결합된 자소를 간단한 문자소로 분해하여 발음 구별 부호 제거를 용이하게 하는 데 사용됩니다.
유니코드 속성 이스케이프 사용
또 다른 접근 방식은 유니코드 속성을 사용하는 것입니다. escapes:
const str = "Crème Brûlée"; const removed = str.normalize("NFD").replace(/\p{Diacritic}/gu, ""); console.log(removed); // Output: "Creme Brulee"
정렬 목적
목표가 단지 정렬인 경우 Intl.Collator를 활용할 수 있습니다.
const c = new Intl.Collator(); const arr = ["creme brulee", "crème brûlée", ...]; arr.sort(c.compare);
IE6 고려사항
IE6의 경우, 정규 표현식은 문제가 될 수 있습니다. 이 문제를 해결하기 위한 간단한 접근 방식은 특정 악센트 문자를 해당하는 기본 문자로 수동으로 바꾸는 것입니다. 예를 들면 다음과 같습니다.
const accentsTidy = (str) => { return str .toLowerCase() .replace(/\s/g, "") .replace(/[àáâãäå]/g, "a") .replace(/æ/g, "ae") // ... and so on .replace(/\W/g, ""); };
위 내용은 IE6 호환성을 포함하여 JavaScript의 문자열에서 악센트를 제거하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!