регулярное выражение PHP — числовое регулярное выражение плюс одна буква

Я пытаюсь добиться проверки для числового ввода плюс буквы X или x. Пока что у меня есть:

if(preg_match('/[^0-9xX]+$/', $data)) return 'error';

Он правильно возвращает ошибку для всех случаев, за исключением a123. Кто-нибудь знает почему?

0

Решение

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

if(preg_match('/^[0-9xX]+$/', $data))
return 'error';
1

Другие решения

Попробуй это:

if(preg_match('/^[0-9x]+$/i', $data)){
echo 'match';
}else{
echo 'no match';
}

Это как у тебя, только наоборот. ^ для начала строки. $ Для конца строки. Таким образом, вся строка должна соответствовать шаблону.

0

if(!preg_match('/^([0-9]+|[xX])$/', $data)) return 'error';

Может быть, это будет лучше,
это соответствует правильному случаю, и добавить ! до результата матча.

0

Я не понял

if(preg_match('/^[0-9xX]+$/', $data)) return 'error';

все еще не возвращает ошибку, когда мы вводим 123.

Извините, если я сделаю недоразумение.

if(preg_match('/[0-9]xX$/', $data)) return 'error';

За всем номером последует хх. CMIIW.

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector