preg_match как я должен использовать - PullRequest
0 голосов
/ 03 августа 2009

У меня есть строка для проверки, и если это только цифры и цифры, выполните другое действие, иначе выйдите;

$data = 123412347JB91742F;

 if(preg_match('/[A-Z1-9]/', $data )) {
  echo $data;

} 
else { 
  exit; 
}

это работает нормально, но если я добавлю что-либо к $data, например $ или что-то еще, оно все равно напечатает значение Что не так с этим кодом?

Edit:

$data = preg_replace('/\-/', '', '1234-1234-JB91-8742F');

if(preg_match('/^[A-Z1-9]+$/', $data )) {
    echo $data;
} else {
    exit;
}

Ответы [ 2 ]

2 голосов
/ 03 августа 2009
  1. Ваше регулярное выражение будет соответствовать каждой строке, содержащей цифру или "нормальный" символ.
  2. $ данные должны быть в кавычках.

Ваш код должен выглядеть следующим образом:

preg_match('/^[A-Z1-9]+$/', $data)

Хотите совпадать с нулями и строчными буквами? Тогда ваше регулярное выражение должно выглядеть так:

preg_match('/^[A-Z0-9]+$/i', $data)
2 голосов
/ 03 августа 2009

Ваше регулярное выражение просто проверяет, есть ли хотя бы один символ из этого набора. Попробуйте использовать это регулярное выражение:

/^[A-Z1-9]+$/

Якоря ^ и $ отмечают начало и конец строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...