당신은을 통해 설치 라이브러리 latinize을 사용할 수 있습니다
npm install @types/latinize
사용법 :
var latinize = require('latinize');
latinize('ỆᶍǍᶆṔƚÉ áéíóúýčďěňřšťžů'); // => 'ExAmPlE aeiouycdenrstzu'
당신이 타이프 라이터를 사용하고 있기 때문에
npm install latinize
, 당신은 또한 입력을 얻을 수 있습니다 내부적으로는 라틴 문자 또는 아랍어 숫자가 아닌 각 문자를 대체합니다. 정규 표현식과 콜백 함수.
function latinize(str) {
if (typeof str === 'string') {
return str.replace(/[^A-Za-z0-9]/g, function(x) {
return latinize.characters[x] || x;
});
} else {
return str;
}
}
그것은 미리 정의 된 character lookup table의 도움을 통해 대상 문자를 찾습니다.
결국이 솔루션은 검색 및 바꾸기 접근법이기도합니다. 캐릭터의 발견을 자동화하고 싶지만 폰트 시스템은 그런 식으로 작동하지 않는다는 것을 알고 있습니다.
컴퓨터와 따라서 JavaScript는 문자의 디자인과 의미를 알지 못합니다. 대신 문자는 기호를 식별하는 데 사용하는 임의의 숫자입니다. 그리고 그 시스템은 매우 자의적이며 내부 일관성은별로 없습니다.
따라서 â
은 디자인 상으로는 a
과 관련이 있다는 것을 알고 있지만 컴퓨터는 UTF8에 숫자 U+00E2
만 있다는 것을 알고 있습니다. 그래도 U+0061
이 되길 원합니다.
그러나 번호를 아는 것에서 연결이 없습니다. 당신은 기호를 비교해야하고 그것은 거의 가능하지 않습니다. 만약 당신이 매우 유사하게 보이는 상징으로 내려 간다면.Α~ U+0041
.
의미를 계산할 방법이 없습니다. 확장 캐릭터를 라틴어 상대에게 직접 매핑해야합니다 (또는 라이브러리의 도움을 통해).
아포스트로피가 아니라 액센트입니다. – SLaks
관련 : https://stackoverflow.com/questions/286921/efficiently-replace-all-accented-characters-in-a-string – k0pernikus
그 목적을위한 라이브러리가있는 것 같습니다. [latinize] (https : // www .npmjs.com/package/latinize) – k0pernikus