проверить строку с помощью preg_match - PullRequest
1 голос
/ 17 августа 2010

У меня есть вопрос, который кажется вам простым, но на самом деле не могу его получить. встречайте предупреждение до сих пор.

Могу ли я узнать, как я могу принять строку с целыми числами 0-9 и alpha a-zA-Z, но не менее 5 символов и не более 15 символов с preg_match. Спасибо

Ответы [ 3 ]

7 голосов
/ 17 августа 2010

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

preg_match('/^[0-9a-zA-Z]{5,15}$/D', $str)

Здесь ^ отмечает начало и $ конец строки (модификатор D позволяет $ соответствовать только концу строки без конца строки). Это означает, что вся строка должна соответствовать шаблону [0-9a-zA-Z]{5,15}, который описывает последовательность от 5 до 15 символов класса символов [0-9a-zA-Z].

1 голос
/ 17 января 2011

Попробуйте вместо этого, я протестировал его как спам-фильтр на моем сайте.

if (!preg_match("/^[0-9a-zA-Z]{5,80}$/D", "$name")) 
{
die("Error Occured : Please Enter Your Name Before Attempting to Send Message");
}
1 голос
/ 17 августа 2010

Вы сказали в своем сообщении

как мне принять строку с целыми числами 0-9 AND alpha a-zA-Z, но

Если это AND является локальным и читает "буквы && цифры", это становится более сложным:

 ...

 $nd = preg_match_all('/\d/', $text, $m);        # count numbers
 $na = preg_match_all('/[a-zA-Z]/', $text, $m);  # count characters
 $nn = $na + $nd;                                # must be like strlen($text)

 if($nn==strlen($text) && $nn>=5 && $nn<=15 && $na && $nd)
    echo "$text ok";
  else
    echo "$text not ok";

 ...

Привет

БВУ

...