feat: 초성 검색에서 '알파벳' 대신 검색 추가
This commit is contained in:
@@ -198,7 +198,7 @@ import { mb_strwidth } from "./util/mb_strwidth";
|
|||||||
import { parseTime } from "./util/parseTime";
|
import { parseTime } from "./util/parseTime";
|
||||||
import { parseYearMonth } from "./util/parseYearMonth";
|
import { parseYearMonth } from "./util/parseYearMonth";
|
||||||
import { sammoAPI } from "./util/sammoAPI";
|
import { sammoAPI } from "./util/sammoAPI";
|
||||||
import { filter초성 } from "./util/filter초성";
|
import { filter초성withAlphabet } from "./util/filter초성withAlphabet";
|
||||||
|
|
||||||
type commandItem = {
|
type commandItem = {
|
||||||
value: string;
|
value: string;
|
||||||
@@ -473,8 +473,8 @@ export default defineComponent({
|
|||||||
if(command.searchText){
|
if(command.searchText){
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
const filteredText = filter초성(command.simpleName).replace(/\s+/g, '');
|
const [filteredTextH, filteredTextA] = filter초성withAlphabet(command.simpleName.replace(/\s+/g, ''));
|
||||||
command.searchText = `${command.simpleName} ${filteredText}`
|
command.searchText = `${command.simpleName} ${filteredTextH} ${filteredTextA}`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
export function filter초성withAlphabet(text: string): [string, string] {
|
||||||
|
const 초성 = [
|
||||||
|
"ㄱ", "ㄲ", "ㄴ", "ㄷ", "ㄸ", "ㄹ", "ㅁ", "ㅂ", "ㅃ",
|
||||||
|
"ㅅ", "ㅆ", "ㅇ", "ㅈ", "ㅉ", "ㅊ", "ㅋ", "ㅌ", "ㅍ", "ㅎ"
|
||||||
|
];
|
||||||
|
const alphabets = [
|
||||||
|
"r", "R", "s", "e", "E", "f", "a", "q", "Q",
|
||||||
|
"t", "T", "d", "w", "W", "c", "z", "x", "v", "g"
|
||||||
|
];
|
||||||
|
const resultH: string[] = [];
|
||||||
|
const resultA: string[] = [];
|
||||||
|
for (const char of text) {
|
||||||
|
const code = (char.codePointAt(0) ?? 0) - 44032;
|
||||||
|
if (0 <= code && code < 11172) {
|
||||||
|
resultH.push(초성[~~(code / 588)]);
|
||||||
|
resultA.push(alphabets[~~(code / 588)]);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
resultH.push(char);
|
||||||
|
resultA.push(char);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return [resultH.join(''), resultA.join('')];
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user