UNPKG

transcriptor-universal

Version:

Un simple transcriptor universal para lenguas con caracteres unicode.

44 lines 1.79 kB
"use strict"; function Transcribir(texts,rules) { texts = texts.toString(); rules = rules.toString(); let char1 = rules.charAt(0); let char2 = rules.charAt(1); if ( char1 === char2 ) { return ["Error en : char1 = char2 ( " + char2 + char2 + " )",rules]; }; rules = rules.slice(1); rules = rules.slice(1); let aux1 = "\\"; let aux2 = "\\"; let aux3 = "\\"; let regex = /[a-z A-Z 0-9]/; if ( regex.test(char1) ) { aux1 = "" }; if ( regex.test(char2) ) { aux2 = "" }; let char01 = new RegExp("("+aux1+char1+aux2+char2+"+)","g"); let char02 = char1+char2; let char03 = new RegExp("("+aux2+char2+aux1+char1+"+)","g"); let char04 = char2; let char05 = new RegExp(aux1+char1+"{2,}","g"); let char06 = char1; let char07 = new RegExp(aux2+char2+"{2,}","g"); let char08 = char2; let char0A = new RegExp("^"+aux1+char1,"g"); let char0B = new RegExp("^"+aux2+char2,"g"); rules = rules.replace(char01,char02).replace(char03,char04).replace(char05,char06).replace(char07,char08).replace(char0A,"").replace(char0B,""); let ListB = rules.split(char2); let positionB = 0; while ( ListB[positionB] ) { let char3 = new RegExp("[^"+aux1+char1+"]","g"); if ( ListB[positionB].replace(char3,"").length !== 1 ) { return ["Error en : " + ListB[positionB],char1 + char2 + rules]; }; let position = ListB[positionB].indexOf(char1, 0); let result1 = ListB[positionB].substring(0, position); let result2 = ListB[positionB].substring(position + 1, ListB[positionB].length); if ( result2 == "." ) { result2 = "\."}; if ( regex.test(result1) ) { aux3 = "" }; let myReplace1 = new RegExp(aux3+result1, "g"); texts = texts.replace(myReplace1,result2); positionB = positionB + 1; }; rules = char1 + char2 + rules; return [texts, rules]; }; module.exports = { Transcribir };