Изменить и узнать регистр символа js

475
08 августа 2017, 17:47

Здравствуйте, есть символ

var symb = 'к';

Вопрос 1: Как узнать какой регистр (верхний/нижний) Вопрос 2: Как повысить/понизить регистр символа (было 'к', стало 'К'). Я мог бы написать функцию с двумя массивами и заменой по индексу, но это будет не совсем корректно на мой взгляд. Можно ли осуществить это другим способом?

Answer 1
toUpperCase / toLowerCase

Для смены регистра

var k = "f";
k.toUpperCase();
//"F"
k.toUpperCase() == k
//false
Answer 2

Узнать регистр символа

console.log('к' == 'к'.toUpperCase() ? 'Прописная' : 'Строчная'); 
console.log('K' == 'K'.toUpperCase() ? 'Прописная' : 'Строчная');

Преобразование строк в верхний и нижний регистр соответственно

console.log('к'.toUpperCase()); // Преобразование строки в верхний регистр 
console.log('K'.toLowerCase()); // Преобразование строки в нижний регистр

Но возможна ситуация, когда символ — число.

Тогда нужно будет делать дополнительную проверку.

var char = 6; // или '5' 
 
if (isNaN(char * 1)) { 
  console.log(char == char.toUpperCase() ? 'Прописная' : 'Строчная'); 
} else { 
  console.log('Число'); 
}

Для «нестандартных» локалей, типа турецкой смотрите в сторону методов toLocaleLowerCase() и toLocaleUpperCase()

Answer 3

если по одному символу проверять то думаю подойдет и такое:

var symb = 'к', 
    symbUpper = 'K', 
    test = 'L'; 
function whatRegist(char){ 
  if(char === char.toUpperCase()) return 'UpperRegist'; 
  else return 'LowerRegist'; 
} 
console.log(whatRegist(symb)); 
console.log(whatRegist(symbUpper)); 
console.log(whatRegist(test));

READ ALSO
Не считает сумму в массиве [требует правки]

Не считает сумму в массиве [требует правки]

Выдаёт 2 errorа в консолиВ чём ошибка? P

358
Как мокнуть компонент

Как мокнуть компонент

В общем есть компонент на angular4 написал для него тест замокал сервисы, все было норм, теперь добавляю внутри этого компонента вызов другого

510
Грамотный onUnLoad

Грамотный onUnLoad

Событие onUnLoad возникает если пользователь покидает страницуНо к сожалению это поддерживается не во всех браузерах

340
Выведение информационного сообщения

Выведение информационного сообщения

Как вывести информационное сообщение после отправки формы заказа на сервер? Возможно ли это средствами WooCommerce

452