cmpstr
Version:
CmpStr is a lightweight, fast and well performing package for calculating string similarity
72 lines (69 loc) • 1.4 kB
JavaScript
// CmpStr v3.2.2 build-bb61120-260311 by Paul Köhler @komed3 / MIT License
import {
PhoneticRegistry,
PhoneticMappingRegistry,
Phonetic
} from './Phonetic.mjs';
class Cologne extends Phonetic {
static default = { map: 'default', delimiter: ' ', length: -1, dedupe: true };
constructor(opt = {}) {
super('cologne', opt);
}
adjustCode(code) {
return code.slice(0, 1) + code.slice(1).replaceAll('0', '');
}
}
PhoneticRegistry.add('cologne', Cologne);
PhoneticMappingRegistry.add('cologne', 'default', {
map: {
a: '0',
ä: '0',
e: '0',
i: '0',
j: '0',
o: '0',
ö: '0',
u: '0',
ü: '0',
y: '0',
b: '1',
p: '1',
d: '2',
t: '2',
f: '3',
v: '3',
w: '3',
g: '4',
k: '4',
q: '4',
l: '5',
m: '6',
n: '6',
r: '7',
c: '8',
s: '8',
ß: '8',
z: '8',
x: '48'
},
ignore: ['h'],
ruleset: [
{ char: 'p', next: ['h'], code: '3' },
{
char: 'c',
position: 'start',
next: ['a', 'h', 'k', 'l', 'o', 'q', 'r', 'u', 'x'],
code: '4'
},
{
char: 'c',
next: ['a', 'h', 'k', 'o', 'q', 'u', 'x'],
prevNot: ['s', 'z'],
code: '4'
},
{ char: 'd', next: ['c', 's', 'z'], code: '8' },
{ char: 't', next: ['c', 's', 'z'], code: '8' },
{ char: 'x', prev: ['c', 'k', 'q'], code: '8' }
]
});
export { Cologne };