- Делаем первую букву в строке заглавной на PHP/jQuery/CSS
- Первая буква строки в верхнем регистре на PHP
- Первая буква строки в верхнем регистре на CSS
- Первая буква строки в верхнем регистре на jQuery
- Замена регистра в строках PHP
- Проверка, является ли буква прописной или строчной
- Первая заглавная буква
- Для UTF-8:
- Первая строчная
- Для UTF-8:
- Все заглавные буквы
- Для UTF-8:
- Все строчные буквы
- Для UTF-8:
- Заглавная буква в каждом слове
- Для UTF-8:
- Инверсия регистра
- Комментарии 1
- Работа с регистром строк в php
- Проверка регистра строки
- Первая заглавная буква
- Первая строчная буква
- Все заглавные буквы
- Все строчные буквы
- Заглавная буква в каждом слове
- Инверсия регистра строки
Делаем первую букву в строке заглавной на PHP/jQuery/CSS
Зачастую в спешке при добавлении материалов на сайт или, например, создании новой темы на форуме пользователь может начать писать предложение (название) с маленькой (строчной) буквы. Это в какой-то степени является ошибкой.
Я покажу несколько вариантов решения этой задачи: PHP и CSS подойдут больше для уже опубликованных материалов, когда как jQuery сможет исправить положение еще до публикации.
Первая буква строки в верхнем регистре на PHP
На PHP существует функция под названием «ucfirst», которая как раз преобразует первый символ строки в верхний регистр, но минус ее в том, что она не совсем корректно работает с кириллицей.
Для этого мы напишем свою небольшую функцию. Реализация будет выглядеть следующим образом:
$content = "скажи-ка, дядя, ведь не даром Москва, спаленная пожаром, Французу отдана?"; // Исходная строка echo mb_ucfirst($content); // Получаем результат с первой заглавной буквой ?>
В таком варианте мы получим предложение, которое начинается с большой буквы, что, собственно говоря, нам и необходимо.
Первая буква строки в верхнем регистре на CSS
Этот метод визуально (то есть в исходном коде сайта предложения будут выглядеть как есть) также преобразует первый символ в верхний регистр.
второе предложение
третье предложение
четвертое предложение
С помощью псевдоэлемента «first-letter» и свойства «text-transform» мы задали оформление для каждой первой буквы параграфа.
Первая буква строки в верхнем регистре на jQuery
Как я уже говорил ранее, этот способ преобразования лучше всего подойдет для материалов, которые еще только будут публиковаться.
Для примера мы возьмем текстовое поле (оно будет выступать у нас в качестве поля для ввода заголовка) и напишем для него небольшой скрипт, который при вводе предложения с маленькой буквы делает его с большой:
Скрипт срабатывает как при написании текста, так и простой его вставке. Не забывайте, что для работы скриптов на вашем сайте необходимо наличие подключенной библиотеки jQuery.
Замена регистра в строках PHP
Список PHP-функций для изменения регистра символов в строках и примеры их использования.
Проверка, является ли буква прописной или строчной
Функция ctype_upper($string) – определяет, являются ли все буквы в строке в верхнем регистре.
$str = 'Ы'; if (ctype_upper($str)) < echo 'Заглавная'; >else
Вариант для кириллицы в кодировке UTF-8:
$str = 'Ы'; if (mb_strtolower($str) !== $str) < echo 'Заглавная'; >else < echo 'строчная'; >// Выведется «Заглавная»
Пример определения регистра для первой буквы в строке:
$text = 'Привет мир!'; $chr = mb_substr($text, 0, 1); if (mb_strtolower($chr) !== $chr) < echo 'Заглавная'; >else < echo 'строчная'; >// Выведется «Заглавная»
Первая заглавная буква
ucfirst($string) — преобразует первый символ строки в верхний регистр.
$text = 'привет Мир!'; echo ucfirst($text);
Для UTF-8:
if(!function_exists('mb_ucfirst')) < function mb_ucfirst($str) < $fc = mb_strtoupper(mb_substr($str, 0, 1)); return $fc . mb_substr($str, 1); >> $text = 'привет Мир!'; echo mb_ucfirst($text); // Привет Мир!
Первая строчная
ucfirst($string) — преобразует первый символ строки в верхний регистр.
$text = 'Привет Мир!'; echo lcfirst($text);
Для UTF-8:
if(!function_exists('mb_lcfirst')) < function mb_lcfirst($str) < $fc = mb_strtolower(mb_substr($str, 0, 1)); return $fc . mb_substr($str, 1); >> $text = 'Привет Мир!'; echo mb_lcfirst($text); // привет Мир!
Все заглавные буквы
Для UTF-8:
$text = 'привет Мир!'; echo mb_strtoupper($text); // ПРИВЕТ МИР!
Все строчные буквы
$text = 'Привет Мир!'; echo strtolower($text);
Для UTF-8:
$text = 'Привет Мир!'; echo mb_strtolower($text); // привет мир!
Заглавная буква в каждом слове
$text = 'привет мир!'; echo ucwords($text);
Для UTF-8:
if(!function_exists('mb_ucwords')) < function mb_ucwords($str) < $str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); return ($str); >> $text = 'привет мир!'; echo mb_ucwords($text); // Привет Мир!
Инверсия регистра
function mb_flip_case($string) < $characters = preg_split('/(?$char) < if (mb_strtolower($char, "UTF-8") != $char) < $char = mb_strtolower($char, 'UTF-8'); >else < $char = mb_strtoupper($char, 'UTF-8'); >$characters[$key] = $char; > return implode('', $characters); > $text = 'Привет Мир!'; echo mb_flip_case($text); // пРИВЕТ мИР!
Комментарии 1
function invertCase($text)
$string = »;
/*
Решение №1
$mb_strlen = mb_strlen($text);
$i = $mb_strlen;
while ($i > 0) $i—;
$char = mb_substr($text, $i, 1);
$char = (mb_strtolower($char) === $char) ? mb_strtoupper($char) : mb_strtolower($char);
$string = $char.$string;
>
*/
// Решение №2
$arr = mb_str_split($text, 1);
foreach ($arr as $char) $char = (mb_strtolower($char) === $char) ? mb_strtoupper($char) : mb_strtolower($char);
$string .= $char;
>
return $string;
>
Авторизуйтесь, чтобы добавить комментарий.
Работа с регистром строк в php
Не пропусти свежие посты, подпишись:
В php есть набор функций позволяющих проверять или как-то влиять на регистр строки. Давайте рассмотрим их подробнее.
Проверка регистра строки
$str = 'Test string'; if(ctype_upper(mb_substr($str, 0, 1)))< echo 'Первая буква строки «' . $str . '» заглавная'; > else < echo 'Первая буква строки ' . $str . ' прописная'; >
Первая буква строки «Test string» заглавная
С кириллицей тут есть засада, mb_substr() хотя и возвращает корректный символ, но его почему-то не распознаёт ctype_upper() как заглавную буку. Поэтому можно реализовать такую проверку:
$str = 'Строка для проверки'; $firstLetter = mb_substr($str, 0, 1); if(mb_strtolower($firstLetter) != $firstLetter)< echo 'Первая буква строки «' . $str . '» заглавная'; > else < echo 'Первая буква строки ' . $str . ' прописная'; >
Первая буква строки строка для проверки прописная
Первая заглавная буква
Функция ucfirst($str) преобразует первый символ строки $str в заглавный. Для кириллических строк следует использовать пользовательскую функцию mb_ucfits() , пример:
//Проверяем что такуй функции нет if(!function_exists('mb_ucfirst')) < //Добавляем функцию function mb_ucfirst($str) < //Преобразуем первый символ $fc = mb_strtoupper(mb_substr($str, 0, 1)); //Возвращаетм строку return $fc . mb_substr($str, 1); >> $str = 'cтрока для проверки'; echo mb_ucfirst($str); // 'Строка для проверки
Первая строчная буква
Функция lcfirst($str) приводит первый символ строки $str к нижнему регистру. Для работы с UTF-8 (кириллицей), нужна своя функция:
//Проверяем что такуй функции нет if(!function_exists('mb_lcfirst')) < function mb_lcfirst($str) < $fc = mb_strtolower(mb_substr($str, 0, 1)); return $fc . mb_substr($str, 1); >> $str = 'Cтрока для проверки'; echo mb_ucfirst($str); // 'cтрока для проверки
Все заглавные буквы
Функции strtoupper($string), mb_strtoupper($string) — преобразует строку в верхний регистр. Префикс mb_ для кириллицы (UTF-8).
$str = 'Cтрока для проверки'; echo mb_strtoupper($str); // CТРОКА ДЛЯ ПРОВЕРКИ
Все строчные буквы
Функции strtolower($string), mb_strtolower($string) — приводят строки к нижнему регистру. Для UTF-8 так же используется функция с премифксом mb_.
$str = 'CтроКа Для проАерки'; echo mb_strtolower($str); // cтрока для проаерки
Заглавная буква в каждом слове
Если вам нужно вывести расшифровку аббревиатуры какой-нибудь организации, а у вас есть строка в нижнем регистре, воспользуйтесь функцией ucwords() . Она сделает в строке каждое слово с заглавной буквы.
$str = 'National hockey league'; echo 'NHL is ' . ucwords($str); //NHL is National Hockey League
if(!function_exists('mb_ucwords')) < function mb_ucwords($str) < $str = mb_convert_case($str, MB_CASE_TITLE, "UTF-8"); return ($str); >> $str = 'федеральная служба безопасности'; echo 'ФСБ можно расшифровать как «' . mb_ucwords($str) . '»'; //ФСБ можно расшифровать как «Федеральная Служба Безопасности»
Инверсия регистра строки
И для закрепления материала, воспользуйтесь примером и разберитесь как работает функция позволяющая провести инверсию регистра. Т.е. сделать все заглавные буквы строчными и наоборот.
function mb_inversion_case($str) < //Разбиваем строку посимвольно в массив $characters = preg_split('/(?$char) < if (mb_strtolower($char, 'UTF-8') != $char) < $char = mb_strtolower($char, 'UTF-8'); >else < $char = mb_strtoupper($char, 'UTF-8'); >//Кладём преобразованный символ в массив по тому же индексу $characters[$key] = $char; > //Собираем строку обратно и вовзращаем return implode('', $characters); > $str = 'У лукОМорья Дуб зелёный.'; echo mb_inversion_case($str); //у ЛУКомОРЬЯ дУБ ЗЕЛЁНЫЙ.
Удачи в работе со строками!
Не пропусти свежие посты, подпишись: