Проверить строку на отсутствие цифр

Быстрый переход:
aristarh

aristarh

Member
#1   02 июля 2008 11:27
Всем привет!

Такая вот проблемка. Есть строка, которая хранится в переменной, допустим $str. Так вот как бы мне проверить ее на наличие цифр. И если цифры в ней будут найдены, выдать сообщение об ошибке? Если точнее, то нужно чтобы в строке вообще были только буквы, как английские, так и русские.
Как вот реализовать это на PHP?
Отредактировано: aristarh (02.07.2008 12:42, 15 лет назад)
Алексей

Алексей

Administrator
#2   02 июля 2008 12:45
На PHP можно сделать так (с применением регулярных выражений):

<?php 
if(!preg_match("/^[a-zA-Zа-Я]+$/", $str)) { 
    echo "Строка содержит не только буквы"; 
} else { 
    echo "Строка задана в правильном формате, только буквы"; 
} 
?>

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

Поэтому есть два варианта. Неправильный: Забить все символы в квадратные скобки [абвгде...яАБ...Я]. Правильный: поставить русскую локаль и пользоваться.

Есть миры, не здесь, там, где небеса горят, и моря засыпают, и реки дремлют; люди сделаны из дыма, а города – из песен. Где-то опасность, где-то несправедливость, даже где-то остыл чай. Идем Эйс, у нас много работы!