cmpstr
Version:
CmpStr is a lightweight, fast and well performing package for calculating string similarity
70 lines (66 loc) • 1.4 kB
JavaScript
// CmpStr v3.2.2 build-bb61120-260311 by Paul Köhler @komed3 / MIT License
'use strict';
var Phonetic = require('./Phonetic.cjs');
class Cologne extends Phonetic.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', '');
}
}
Phonetic.PhoneticRegistry.add('cologne', Cologne);
Phonetic.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' }
]
});
exports.Cologne = Cologne;