class StringUtils {
static getEnding(count, on1Ending, from2to4Ending, from5to9or0Ending) {
let decimals = count - Math.floor(count / 10) * 10;
if (count >= 10 && count <= 19) {
return from5to9or0Ending;
}
if (decimals === 1) {
return on1Ending;
} else if (decimals >= 2 && decimals <= 4) {
return from2to4Ending;
} else {
return from5to9or0Ending;
}
}
static capitalize(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
static escapeRegex(string) {
if (!isNaN(string)) {
string = string.toString();
}
return string.replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&');
}
static containsEngString(string) {
const engRegex = /[A-Za-z]/;
return engRegex.test(string);
}
static engKeyboardLayoutToRus(string) {
const eng = "`qwertyuiop[]asdfghjkl;'zxcvbnm,./~QWERTYUIOP{}ASDFGHJKL:\"ZXCVBNM<>?".split('');
const rus = "ёйцукенгшщзхъфывапролджэячсмитьбю.ЁЙЦУКЕНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,".split('');
let result = '';
for (let char of string) {
let index = eng.indexOf(char);
if (index !== -1) {
result += rus[index];
} else {
result += char;
}
}
return result;
}
}