Php проверить латинский букву

Определить что в слове только буквы (кириллица и латиница), без цифр,пробелов и дргуих символов

Добры день. Появилась необходимость написать пару регулярных выражений для проверки нескольких полей, до этого с ними не сталкивался. Поля имя, фамилия и отчество не должны содержать пробелы, цифры и вообще любые знаки кроме букв. Поиском находил разные варианты, но так и не добился желаемого результата, если у кого нибудь есть такое подскажите пожалуйста.

Дошло уже до такого, но все равно позволяет писать различные символы и т.д.

if (preg_match ('/\s/', $lastName)){ $errors[] = 'Фамилия не должна содержать пробелов'; }else{ if (preg_match ('/5/', $lastName)){ $errors[] = 'Фамилия не должна содержать цифр'; }else{ if (preg_match ('/(^A-Za-z0-9)/', $lastName ) ){ $errors[] = 'Фамилия должна быть только из букв и без пробелов'; } } }

Код символов: какой символ какому номеру относится, интересует латиница, кириллица и символы
Добрый вечер, сейчас пишу программу по кодировке информации (лабораторная работа в университете).

С клавиатуры вводится латиница, не более 80 символов, вывести эти символы так, чтобы не было пробелов
С клавиатуры вводится латиница, не более 80 символов, вывести эти символы так, чтобы не было более.

Определить какие буквы встречаются только в одном слове
Слова в тексте разделены пробелами. определить какие буквы встречаются только в одном слове этого.

Читайте также:  Html button to another html page

Эксперт JSЭксперт HTML/CSSЭксперт PHP

$fam = 'Я'; echo preg_match("~^[^[:punct:]\\s\\d]$~ui",$fam) ? 'OK' : 'Error';

Попытался использовать это выражение. Позволяет писать различные символы, и нельзя писать русские буквы

Эксперт JSЭксперт HTML/CSSЭксперт PHP

ЦитатаСообщение от SeregaVili Посмотреть сообщение

Попытался использовать это выражение. Позволяет писать различные символы, и нельзя писать русские буквы

Ну говорите А, говорите и Б .. Приводите хотя бы примеры своих кодов, что бы понимать о чём вообще речь.
То что нельзя писать русские буквы , это бред. У меня даже в примере написана русская буква, + стоит флаг u.

$fam = 'fgrg'; if(preg_match("~^[a-zа-яё]+$~ui",$fam)){ echo 'Верно'; }else echo 'Нет';

Упс, извиняюсь вы правы. Спасибо большое, я просто упустил момент что сравнивал от обратного, то есть если не равно этому выражению, теперь все отлично. Еще раз благодарю.

Можно ( и НМВ нужно ) использовать Unicode Properties, если исходный текст в utf8

Property Description
1 \p or \p any kind of letter from any language.
2 \p or \p a lowercase letter that has an uppercase variant.
3 \p or \p an uppercase letter that has a lowercase variant.
4 \p or \p a letter that appears at the start of a word when only the first letter of the word is capitalized.
5 \p or \p a letter that exists in lowercase and uppercase variants (combination of Ll, Lu and Lt).
6 \p or \p a special character that is used like a letter.
7 \p or \p a letter or ideograph that does not have lowercase and uppercase variants.

нумеро 1 в данном случае вполне подойдёт.

Определить буквы, которые встречаются только в первом и во втором слове
Даны 4 слова, определить те буквы, которые встречаются только в первом и во втором слове Заранее.

Оставить только уникальные значение в таблице по одному столбцу без учета регистра, символов и пробелов на конце
Добрый день, Зашел в тупик. За любые подсказки буду благодарен. Надо оставить по столбцу все.

Дана строка символов. Группы символов в ней между группами пробелов считаются словами. Определить сколько слов содержат ровно три буквы «е».
Дана строка символов. Группы символов в ней между группами пробелов считаются словами. Определить.

Кириллица и латиница
Как перевести текст из richtextbox в кириллицу или латиницу

латиница кириллица
Добрый день мой файл принимает от пользователя строку и проверяет RegExp .

Одновременно латиница и кириллица
Вечер добрый. Ребят, помогите составить выражение, которое проверяет одновременное наличие в.

Источник

Проверка данных регулярными выражениями в PHP

Сборник основных шаблонов регулярных выражений на PHP для проверки данных.

Проверка набора из латинских букв и цифр

Регулярное выражение для проверки набора только из латинских букв и цифр:

$pattern = '/^[a-z0-9]+$/i'; $var = 'String123'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Если необходимо добавить в набор некоторые символы:

// использовать тире $pattern = '/^[a-z0-9-]+$/i'; $var = 'String-123'; // использовать знак подчёркивания $pattern = '/^[a-z0-9-_]+$/i'; $var = 'String-1_23'; // использовать точку $pattern = '/^[a-z0-9-_.]+$/i'; $var = 'String-1_23.end'; // использовать пробел $pattern = '/^[a-z0-9-_. ]+$/i'; $var = 'String-1_23.end ps. ';

Проверка на кириллицу и цифры

Регулярное выражение для проверки набора только из букв кириллицы и цифр:

$pattern = '/^[а-яё0-9]+$/iu'; $var = 'Строка123'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка на число

Регулярное выражение для проверки данных на целое число:

$pattern = '/^\d+$/'; // Исключаем 0 $pattern = '/^4+$/'; // Не больше 1-й цифры $pattern = '/^3+$/'; // Максимум 4 цифры $pattern = '/^5+$/'; $var = 123; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Регулярное выражение для проверки данных на тип Float (числа с плавающей точкой):

$pattern = '/^9*[.,]5+$/'; $var = 123.45; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else < echo 'Проверка не пройдена!'; >// Если нужно, чтобы пропускал и целые числа $pattern = '/^8*[.,]?8+$/';

Проверка логина

Регулярное выражение для проверки логина. Разрешено использовать только латинские буквы, цифры, тире и знак подчёркивания. Длина логина от 2 до 20 символов (включительно):

$text = 'Login_123-45'; if (preg_match("/^[a-z0-9-_]$/i", $text)) < echo 'Проверка пройдена успешно!'; >else

Проверка Email

Регулярное выражение для проверки Email:

$pattern = '/^([a-z0-9_-]+\.)*[a-z0-9_-]+@[a-z0-9_-]+(\.[a-z0-9_-]+)*\.[a-z]$/'; $var = 'admin@site.com'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Более современный и правильный способ:

$var = 'admin@___site.com'; $email = filter_var($var, FILTER_SANITIZE_EMAIL); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) throw new InvalidArgumentException('Invalid Email'); return $email;

Проверка номера телефона

Регулярное выражение для проверки номера телефона:

$pattern = '/^((8|\+7)[\- ]?)?(\(?\d\)?[\- ]?)?[\d\- ]$/'; $var = '+7(982)000-00-00'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка даты по формату

$pattern = '/^(01|[12]4|3[01])[\.](02|1[012])[\.](19|20)\d\d$/'; $var = '10.12.2019'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
$pattern = '/^9-(06|1[012])-(05|12|26|3[01])$/'; $var = '2019-12-10'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка md5-хэша

Регулярное выражение для проверки на корректность md5-хэша:

$pattern = '/^[a-f0-9]$/'; $var = '341be97d9aff90c9978347f66f945e77'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка IP адресов

Регулярное выражение для проверки IPv4 адреса:

$pattern = '/^((254|21\d|[01]?\d\d?)\.)(251|23\d|[01]?\d\d?)$/'; $var = '192.168.0.1'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else
$pattern = '/((^|:)([0-9a-fA-F]))$/i'; $var = '2001:DB8:3C4D:7777:260:3EFF:FE15:9501'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Проверка доменного имени

Регулярное выражение для проверки на корректность доменного имени сайта:

$pattern = '/^(https?:\/\/)?([\da-z\.-]+)\.([a-z\.])([\/\w \.-]*)*\/?$/'; $var = 'https://prowebmastering.ru'; if (preg_match($pattern, $var)) < echo 'Проверка пройдена успешно!'; >else

Источник

ctype_alpha

Проверяет, все ли символы в переданной строке text являются буквенными. В стандартной локали C буквами являются только [A-Za-z] и ctype_alpha() эквивалентна (ctype_upper($text) || ctype_lower($text)) , если $text состоит всего из одного символа, но в других языках есть буквы, которые не считаются ни верхним, ни нижним регистром.

Список параметров

Замечание:

Если передано целое число ( int ) в диапазоне между -128 и 255 включительно, то оно будет обработано как ASCII-код одного символа (к отрицательным значениям будет прибавлено 256 для возможности представления символов из расширенного диапазона ASCII). Любое другое целое число будет обработано как строка, содержащая десятичные цифры этого числа.

Начиная с PHP 8.1.0, передача нестроковых аргументов устарела. В будущем аргумент будет интерпретироваться как строка вместо кода ASCII. В зависимости от предполагаемого поведения аргумент должен быть приведён к строке ( string ) или должен быть сделан явный вызов функции chr() .

Возвращаемые значения

Возвращает true , если каждый символ в строке text является буквой из текущей локали, false в противном случае. При вызове с пустой строкой результатом всегда будет false .

Примеры

Пример #1 Пример использования ctype_alpha() (с использованием локали по умолчанию)

$strings = array( ‘KjgWZC’ , ‘arf12’ );
foreach ( $strings as $testcase ) if ( ctype_alpha ( $testcase )) echo «Строка $testcase состоит только из букв.\n» ;
> else echo «Строка $testcase состоит не только из букв.\n» ;
>
>
?>

Результат выполнения данного примера:

Строка KjgWZC состоит только из букв. Строка arf12 состоит не только из букв.

Смотрите также

  • ctype_upper() — Проверяет наличие символов в верхнем регистре
  • ctype_lower() — Проверяет наличие символов в нижнем регистре
  • setlocale() — Устанавливает настройки локали

Источник

Как подсветить буквы в слове, где есть латиница и кириллица (php)?

Приходит на вход строка, из нее нужно выбрать слова, где есть кириллица и латиница в одном слове, так же в слове могут быть все символы, я хочу подсветить другим цветом в этих словах буквы которые принадлежат латинице или кириллице, когда символ один, все срабатывает хорошо, когда 2 и более то второй символ не подсвечивает, помогите пожалуйста, как это реализовать?

echo ""; echo ''; echo ""; $count = 0; echo ""; echo ''; foreach ($arrAllItems as $arrAllItem) < $i++; if ($i >300) < break; >// $words = preg_split('/(^[а-яА-ЯёЁ]+[\-\/.,+*()0-9]*[a-zA-Z]+|[a-zA-Z]+[\-\/.,+*()0-9]*[а-яА-ЯёЁ]+)/ui', $arrAllItem['Model'],-1,PREG_SPLIT_NO_EMPTY); $wordsVar = preg_match_all('/[а-яА-ЯёЁ]+[\-\/.,+*()0-9]*[a-zA-Z]+|[a-zA-Z]+[\-\/.,+*()0-9]*[а-яА-ЯёЁ]+/ui', $arrAllItem['Model'], $words); $new_array = array_values(array_diff($words, array(''))); foreach ($words[0] as $key => $word) < // if (!preg_match_all("/^(?:\p+|\p+)$/ui", $word, $out)) < $arrNonCorrect = array(); if (preg_match_all("/(?:[а-яА-ЯёЁ]+\W)/ui", $word, $out)) < if (!empty($arrAllItem['Model'])) < $str = $arrAllItem['Model']; $res = preg_match_all('/(?:[a-zA-Z]+)/ui', $word, $matches); array_push($arrNonCorrect, array('alltext'=>$arrAllItem['Model'], 'model'=>array('eng'=>$matches[0], 'rus'=>$out[0]), 'CODE'=>$arrAllItem['CODE'])); foreach ($arrNonCorrect as $item)< echo ''; echo "'; echo " '; > > > > > echo '
МодельКод
"; // $str = $arrAllItem['Model']; foreach ($item['model']['eng'] as $value) < // echo "".$value." "; $str = preg_replace('/(?:'.$value.')/ius',''.$value.'', $str, 1); > echo $str; echo '"; echo '
';

61cd8338ec8b9815433309.png

Источник

Оцените статью