Created
December 13, 2019 06:56
-
-
Save lexuschert/fa977d5da0c124ca53be80fd736b8459 to your computer and use it in GitHub Desktop.
Js. Lang utils
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Helper > | |
function isArray(obj) { | |
return Object.prototype.toString.call(obj) === '[object Array]'; | |
} | |
// Helper /> | |
function trim(text) { | |
return (text || '').replace(/^\s+|\s+$/g, ''); | |
} | |
function stripHTML(text) { | |
return text ? text.replace(/<(?:.|\s)*?>/g, '') : ''; | |
} | |
function escapeRE(s) { | |
return s ? s.replace(/([.*+?^${}()|[\]\/\\])/g, '\\$1') : ''; | |
} | |
function langWordNumeric(num, words, arr) { | |
if (isArray(words) && num < words.length) { | |
return words[num]; | |
} | |
return langNumeric(num, arr); | |
} | |
function langNumeric(count, vars, formatNum) { | |
if (!vars || !window.langConfig) { return count; } | |
var res; | |
if (!isArray(vars)) { | |
res = vars; | |
} else { | |
res = vars[1]; | |
if(count != Math.floor(count)) { | |
res = vars[langConfig.numRules['float']]; | |
} else { | |
each(langConfig.numRules['int'], function(i,v){ | |
if (v[0] == '*') { res = vars[v[2]]; return false; } | |
var c = v[0] ? count % v[0] : count; | |
if(indexOf(v[1], c) != -1) { res = vars[v[2]]; return false; } | |
}); | |
} | |
} | |
if (formatNum) { | |
var n = count.toString().split('.'), c = []; | |
for(var i = n[0].length - 3; i > -3; i -= 3) { | |
c.unshift(n[0].slice(i > 0 ? i : 0, i + 3)); | |
} | |
n[0] = c.join(langConfig.numDel); | |
count = n.join(langConfig.numDec); | |
} | |
res = (res || '%s').replace('%s', count); | |
return res; | |
} | |
function parseLatin(text){ | |
var outtext = text; | |
var lat1 = ['yo','zh','kh','ts','ch','sch','shch','sh','eh','yu','ya','YO','ZH','KH','TS','CH','SCH','SHCH','SH','EH','YU','YA',"'"]; | |
var rus1 = ['ё', 'ж', 'х', 'ц', 'ч', 'щ', 'щ', 'ш', 'э', 'ю', 'я', 'Ё', 'Ж', 'Х', 'Ц', 'Ч', 'Щ', 'Щ', 'Ш', 'Э', 'Ю', 'Я', 'ь']; | |
for (var i = 0, l = lat1.length; i < l; i++) { | |
outtext = outtext.split(lat1[i]).join(rus1[i]); | |
} | |
var lat2 = 'abvgdezijklmnoprstufhcyABVGDEZIJKLMNOPRSTUFHCYёЁ'; | |
var rus2 = 'абвгдезийклмнопрстуфхцыАБВГДЕЗИЙКЛМНОПРСТУФХЦЫеЕ'; | |
for (var i = 0, l = lat2.length; i < l; i++) { | |
outtext = outtext.split(lat2.charAt(i)).join(rus2.charAt(i)); | |
} | |
return (outtext == text) ? null : outtext; | |
} | |
function parseCyr(text) { | |
var outtext = text, i, | |
lat1 = ['yo','zh','kh','ts','ch','sch','shch','sh','eh','yu','ya','YO','ZH','KH','TS','CH','SCH','SHCH','SH','EH','YU','YA',"'"], | |
rus1 = ['ё', 'ж', 'х', 'ц', 'ч', 'щ', 'щ', 'ш', 'э', 'ю', 'я', 'Ё', 'Ж', 'Х', 'Ц', 'Ч', 'Щ', 'Щ', 'Ш', 'Э', 'Ю', 'Я', 'ь'], | |
lat2 = 'abvgdezijklmnoprstufhcyABVGDEZIJKLMNOPRSTUFHCYёЁ', | |
rus2 = 'абвгдезийклмнопрстуфхцыАБВГДЕЗИЙКЛМНОПРСТУФХЦЫеЕ'; | |
for (i = 0; i < rus1.length; i++) { | |
outtext = outtext.split(rus1[i]).join(lat1[i]); | |
} | |
for (i = 0; i < rus2.length; i++) { | |
outtext = outtext.split(rus2.charAt(i)).join(lat2.charAt(i)); | |
} | |
return (outtext == text) ? null : outtext; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment