JavaScript에서 영어와 스페인어 단어 비교
JSON
콜롬비아 도시 목록을 사용합니다."colombiaCities": [
{
"city": "Bogotá",
"lat": 4.6126,
"lng": -74.0705,
"country": "Colombia",
"iso2": "CO",
"adminName": "Distrito Capital",
"capital": "primary",
"population": 9464000,
"populationProper": 7963000
},
// ...515 other cities
사용자는 국가를 검색하여 세부 정보를 얻을 수 있습니다. 입력은 악센트 표시 없이 영어로 이루어집니다. 원하면 입력할 수 있지만 그렇게 하지 않기로 선택합니다. 그것은 그다지 국제적이지 않습니다.
이 사용자는 noaccent marks(때때로)로 정보를 가져오지 못합니다. 악센트가 없는 문자열을 위 개체의 악센트가 있는 문자열과 비교할 때(toLowerCase() 을 사용하여 대소문자를 같음) 문자별로 비교됩니다.
a
의 Bogota
가 á
의 Bogotá
에 맞설 때까지는 모든 것이 좋습니다. 그들은 이 단어들을 동등하게 비교할 방법이 필요합니다.그리하여 내 검색이 시작되었습니다. 나는
normalize()
method 을 처음 발견했습니다. 다음과 같습니다.const str = 'ÁÉÍÓÚáéíóúâêîôûàèìòùÇç';
const parsed = str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
console.log(parsed)
Regular Expressions이 여전히 무서워서 다음 검색 결과로 이동했습니다. localeCompare() . 이것은 내 속도에 더 가까워 보였고 이미 필요한 비교를 수행하고 있습니다. 다음과 같습니다.
const enStr = 'Bogota'
const esStr = 'Bogotá'
enStr.localeCompare(esStr, 'es-CO', { sensitivity: 'base' })
사실 이전에 이 용어
localeCompare()
를 살펴보았습니다. 전체 텍스트 검색. 그것은 꽤 무거운 의무입니다. JavaScript에서 이것은 FlexSearch 과 같은 라이브러리 종속성 형태로 올 수 있습니다. 내가 당면한 겸손한 분류 작업에 비해 너무 부피가 큽니다.단어 비교 및 도시 정렬 기능으로
localeCompare()
를 선택하겠습니다.
Reference
이 문제에 관하여(JavaScript에서 영어와 스페인어 단어 비교), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/bobbybates/comparing-english-and-spanish-words-in-javascript-3dhb텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)