UNPKG

mesdan

Version:

Latinî mesdan ile Osmanî metin yazmak için hazırlanmış bir alettir.

81 lines (80 loc) 3.81 kB
import { gayriİşaretlerdenMi, harekeMi, kesekMi, tenvinMi, şeddeMi } from '../../aletler/harf-tedkiki-kume'; export function silinecekOsmaniHarfAdediBaşra(alemBaşrasındakiMetin) { if (!alemBaşrasındakiMetin) return 0; const metin = alemBaşrasındakiMetin.normalize('NFC'); const alemBaşrasındakiHarf = metin.slice(-1); const alemBaşrasındakiİkiHarf = metin.slice(-2); const alemBaşrasıHarekeMi = harekeMi(alemBaşrasındakiHarf); const alemBaşrasıTenvinMi = tenvinMi(alemBaşrasındakiHarf); const alemBaşrasıGayriİşaretlerdenMi = gayriİşaretlerdenMi(alemBaşrasındakiHarf); const alemBaşrasıŞeddeMi = şeddeMi(alemBaşrasındakiİkiHarf); const alemBaşrasıKesekMi = kesekMi(alemBaşrasındakiHarf); // ZWNJ - U+200C const alemBaşrasıŞeddeHariciMi = alemBaşrasıHarekeMi || alemBaşrasıTenvinMi || alemBaşrasıGayriİşaretlerdenMi; let silinecekHarfAdedi = 1; if (alemBaşrasıŞeddeMi) { silinecekHarfAdedi = 3; } else if (alemBaşrasıŞeddeHariciMi) { silinecekHarfAdedi = 2; } else if (alemBaşrasıKesekMi) { const kesekEvvelindekiHarf = metin.slice(0, metin.length - 1).slice(-1); const kesekEvvelindekiİkiHarf = metin.slice(0, metin.length - 1).slice(-2); const kesekEvveliHarekeMi = harekeMi(kesekEvvelindekiHarf); const kesekEvveliTenvinMi = tenvinMi(kesekEvvelindekiHarf); const kesekEvveliGayriİşaretlerdenMi = gayriİşaretlerdenMi(kesekEvvelindekiHarf); const kesekEvveliŞeddeHariciMi = kesekEvveliHarekeMi || kesekEvveliTenvinMi || kesekEvveliGayriİşaretlerdenMi; const kesekEvveliŞeddeMi = şeddeMi(kesekEvvelindekiİkiHarf); if (kesekEvveliŞeddeMi) { silinecekHarfAdedi = 4; } else if (kesekEvveliŞeddeHariciMi) { silinecekHarfAdedi = 3; } else { silinecekHarfAdedi = 2; } } return silinecekHarfAdedi; } export function silinecekOsmaniHarfAdediSonra(alemSonrasındakiMetin) { if (alemSonrasındakiMetin.length < 1) return 0; else if (alemSonrasındakiMetin.length === 1) return 1; // const alemSonrasındekiHarf_Birinci = alemSonrası.slice(0, 1); const alemSonrasındekiHarf_İkinci = alemSonrasındakiMetin.slice(1, 2); const alemSonrasındekiHarf_Üçüncü = alemSonrasındakiMetin.slice(2, 3); const alemSonrasındekiHarf_Dördüncü = alemSonrasındakiMetin.slice(3, 4); const alemSonrasındekiHarf_İkinciÜçüncü = alemSonrasındakiMetin.slice(1, 3); const alemSonrasıHarekeliMi = harekeMi(alemSonrasındekiHarf_İkinci); const alemSonrasıTenvinliMi = tenvinMi(alemSonrasındekiHarf_İkinci); const alemSonrasıGayriİşaretliMi = gayriİşaretlerdenMi(alemSonrasındekiHarf_İkinci); const alemSonrasıŞeddeliMi = şeddeMi(alemSonrasındekiHarf_İkinciÜçüncü); const alemSonrasıKesekliMi = kesekMi(alemSonrasındekiHarf_İkinci); const alemSonrasıŞeddeHariciMi = alemSonrasıHarekeliMi || alemSonrasıTenvinliMi || alemSonrasıGayriİşaretliMi; let silinecekHarfAdedi = 1; if (alemSonrasıŞeddeliMi) { const şeddeAhiriKesekMi = kesekMi(alemSonrasındekiHarf_Dördüncü); if (şeddeAhiriKesekMi) { silinecekHarfAdedi = 4; } else { silinecekHarfAdedi = 3; } } else if (alemSonrasıŞeddeHariciMi) { const şeddeHariciAhiriKesekMi = kesekMi(alemSonrasındekiHarf_Üçüncü); if (şeddeHariciAhiriKesekMi) { silinecekHarfAdedi = 3; } else { silinecekHarfAdedi = 2; } } else if (alemSonrasıKesekliMi) { silinecekHarfAdedi = 2; } return silinecekHarfAdedi; }