| |
|
|
| | Всем здрасти!
В очередной раз прошу у Вас помощи.
Ситуация такая, я составил регулярное выражение, оно прекрасно работает, но у меня к нему есть замечание.
Вот код.
<?PHP
$AutoNum="a898aa99";
if(preg_match("/^[a-zA-Z]{1}[0-9]{3}[a-zA-Z]{2}[0-9]{2}$/",$AutoNum)){
print 1;
}else{
print 2;
}
?>
|
Замечание следующее, если проверять номер типа а000аа99, то он его проглатывает, но по идеи ведь такого номера не существует!
Как с этим бороться? | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 17:44)
| | | А какие существуют? | |
| |
|
|
| |
|
|
| |
для: Евгений Петров
(09.12.2005 в 17:58)
| | | Выше написанное выражение ориентированно под современные номера белого цвета!
Они должны быть написанные кирилицей! | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 18:08)
| | | Прошу прощение, я на Украине живу. :))) У нас номера примерно такие
АР 1234 АН | |
| |
|
|
| |
|
|
| |
для: Евгений Петров
(09.12.2005 в 18:11)
| | | Ну так может предложите свою версию рег. выр-ния!? | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 18:14)
| | | "У меня есть регулярное выражение (.*), но оно проглатывает и неправильное значение , например 123, как мне сделать чтобы проглатовало только правильные?"
Я к тому , что уточните почему номер является неправильным... | |
| |
|
|
| |
|
|
| |
для: isset
(09.12.2005 в 18:33)
| | | Прощу прощения, это описка! Как сделать, чтоб он не проглатывал номер типа a000aa99! | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 18:51)
| | | А чем этот номер отличается от a898aa99. Какие номера вам нужно проглатывать?, те у которых 2, 3 и 4 цифра нули или те у которых последние две 9... или и то и другое? Хотите ясный ответ напишите ясный вопрос. | |
| |
|
|
| |
|
|
| |
для: Евгений Петров
(09.12.2005 в 19:13)
| | | Просто такого номера не существует(a000aa99), а мне надо четко проверять их на вилидность!
В принцепе то регулярное выражение, которое я написал выше, меня устаивает. Но этот факт что пользователь может ввести номер типа C000PT77 меня смущает! | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 20:53)
| | | Евгения Петрова наверное мучает тот же вопрос что и меня: В чём состоит неправильность номера C000PT77 - в трёх нулях? Номера C001PT77, C010PT77 и C100PT77 правильные? и вообще какие правила нумерации машин - что можно использовать, а что нет? Допустим на денежных банкнотах нельзя от балды ставить номер - там определённый алгоритм и некоторый номера в принципе никогда не встречаются, а в автомобильных номерах? | |
| |
|
|
| |
|
|
| |
для: cheops
(09.12.2005 в 20:59)
| | | Да! Вы правы, не верность регистрацинного номера заключается в трех нулях! | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 21:16)
| | | Чего-то ничего умнее чем вырезать со 2 по 4 символ и сравнивать их с "000" придумать не могу с ходу... | |
| |
|
|
| |
|
|
| |
для: cheops
(10.12.2005 в 01:17)
| | | а можно так :)
<?php
$AutoNum="a808aa00";
if(preg_match("/^[a-zA-Z]{1}[0-9]{3}(?<!0{3})[a-zA-Z]{2}[0-9]{2}$/",$AutoNum)){
print 1;
}else{
print 2;
}
?>
|
| |
| |
|
|
| |
|
|
| |
для: isset
(10.12.2005 в 01:33)
| | | Спасибо isset! Это то, что нужно! | |
| |
|
|
| |
|
|
| |
для: cheops
(09.12.2005 в 20:59)
| | | Или может Вам надо скрипт, который будет сверяться с БД ГАИ? :))) | |
| |
|
|
| |
|
|
| |
для: Евгений Петров
(09.12.2005 в 21:17)
| | | Нет! ;-)) | |
| |
|
|
| |
|
|
| |
для: Евгений Петров
(09.12.2005 в 21:17)
| | | А я бы от такого скрипта не отказался! | |
| |
|
|
| |
|
|
| |
для: Artemy
(09.12.2005 в 18:14)
| | | Ну это проще простого:
<?
if(preg_match("/^[а-я]{2} [0-9]{4} [а-я]{2}$/i"))
{
// ...
}
?>
|
| |
| |
|
|