Как использовать php preg_match() для обнаружения недопустимых символов, когда даны только допустимые символы?

У меня есть набор символов, которые допускаются в строке текста. Можно ли использовать preg_match для обнаружения существования символов вне диапазона предоставленных символов?

например:

$str1 = "abcdf9"
$str2 = "abcdf@"
$str3 = "abcdfg"

правовые символы = "az"

if (preg_match ()...) должен возвращать false для '$ ​​str1' и '$str2', но 'tru' для $str3.

Будет ли это возможно?

2 ответа

Решение
if(!preg_match('/[^a-z]/', $string)) { //only a-z found }

//or

if(preg_match('/[^a-z]/', $string)) {
    return false; // other stuff found
} else {
    return true; // only a-z found
}

Посмотрите этот сайт очень полезно для развертывания вашего regEx

http://regexr.com/

Что вам нужно, это /[az]/?

Вы можете указать количество символов с помощью /[az]{5}/

Другие вопросы по тегам