Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Проверка номера счёта платёжки, Помогите составить правило проверки 
V
    Опции темы
bscint13
Дата 23.2.2014, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Есть номер счёта ЭПС (электронно-платёжная система), на примере OKPAY... имеет вид

OK456789656

Помогите, пожалуйста, составить правило для проверки (валидации) номера счёта, сам увы, пока не смог разобраться, дремучий лес...

Должно быть две большие буквы и именно OK и 9 цифр, не меньше и не более...

Возможно ли составить такое правило в одну строку... начиная с

preg_match

и что обозначает восклицательный знак перед preg_match ?

пример - !preg_match

Заранее благодарен всем, кто поможет.
PM MAIL   Вверх
bscint13
Дата 24.2.2014, 19:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Молчаливое безразличие говорит о том, что никто не знает или не хочет???  smile 

С восклицательным знаком разобрался, помощь не требуется, а вот с правилом всё же пока нужна... 
PM MAIL   Вверх
AVA12
Дата 24.2.2014, 20:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



Молчаливое безразличие переводится как "RTFM, нуб".

Задача тривиальна, никаких алгоритмических изысков и глубокого знания языка не требуется, достаточно просто прочитать описание синтаксиса регвыров. И даже если никогда не слышал про регвыры, задача все равно легко решается.
PM ICQ Jabber   Вверх
bscint13
Дата 24.2.2014, 22:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Цитата(AVA12 @ 24.2.2014,  20:49)
Молчаливое безразличие переводится как "RTFM, нуб".

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

В таком случае возникает вопрос, зачем данный форум создан вообще... и, если задача такая уж тривиальная, как Вы написали, в принципе подобное мог и написать только нуб, почему бы просто не помочь или это отнимает много усилий??? smile 

P.S. Ничего личного... просто ответ на Ваш пост и всего лишь... есть такое определение в психологии... как ответная реакция... И как думаете, если человек вообще не знаком с PHP, просто пытается как-нибудь разбираться, есть такой метод - метод тыка, но порой не всё понятно... а любому Шустрому или опытному  smile  это же секундное дело... Ну да ладно, как нибудь разберусь без особо знающих... 

Это сообщение отредактировал(а) bscint13 - 24.2.2014, 22:02
PM MAIL   Вверх
AVA12
Дата 24.2.2014, 22:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



Цитата
В таком случае возникает вопрос, зачем данный форум создан вообще

Затем, чтобы помогать в случаях нетривиальных. А не для того, чтобы вести лентяев за ручку - "нажми на красную кнопку, поверни черный переключатель, а если включится аварийная сирена - отойди в сторону и сделай вид, что оно само".

Цитата
почему бы просто не помочь или это отнимает много усилий???

Учить азбуке человека, который не хочет учиться - значит умножать энтропию и плодить халтурщиков, которых и так уж слишком много, особенно в вебе.
PM ICQ Jabber   Вверх
bscint13
Дата 25.2.2014, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Цитата(AVA12 @ 24.2.2014,  22:50)
Цитата
В таком случае возникает вопрос, зачем данный форум создан вообще

Затем, чтобы помогать в случаях нетривиальных. А не для того, чтобы вести лентяев за ручку - "нажми на красную кнопку, поверни черный переключатель, а если включится аварийная сирена - отойди в сторону и сделай вид, что оно само".

Цитата
почему бы просто не помочь или это отнимает много усилий???

Учить азбуке человека, который не хочет учиться - значит умножать энтропию и плодить халтурщиков, которых и так уж слишком много, особенно в вебе.

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

Я не собираюсь изучать PHP и становится программистом, возможно и разве что в следующей жизни, а всё чем интересуюсь на данном форуме - делаю для себя, точнее для своего проекта... В разделе Общие вопросы, я уже писал, почему обращаюсь за помощью, в наше время очень тяжело найти надёжных и верных партнёров, после сотрудничества с несколькими программистами - сделал вывод что надёжнее всё же самому...

И то, что я прошу помочь вовсе не значит, что не копался и не пытался разбираться, на всё нужно время, а его нет и уж конкуренцию Вам либо кому другому не собираюсь составлять...

Итак, всё же о старом... ГЛАВНОМ...

Вот данное правило, к сожалению его не проверял в работе... 

preg_match('/OK{1}\d{9}/i',$okpay)

Оно будет соответсвовать данному номеру счёта, типа OK657456345??? Или нет?

Да, понимаю, проще будет сказать, что нет... однако сейчас хотелось бы получить конструктивную помощь специалиста, а не пустозвона!!!   smile 
PM MAIL   Вверх
bscint13
Дата 25.2.2014, 04:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



preg_match('/OK{1}\d{9}/i',$okpay)

Проверил данное выражение в онлайн сервисе тестирования, даже не в одном... работает!!!  smile 

Однако есть одно но... проходит как  OK657456345 так и ok657456345, т.е. с маленькими буквами.

А как сделать, чтобы всё же были только большие буквы OK, чтобы маленькие не проходили... и возможно ли так сделать в одной строке?

Заранее благодарен Всем неравнодушным за помощь и совет!!!  smile  smile  smile 
PM MAIL   Вверх
capitan
Дата 25.2.2014, 14:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 1
Всего: 13



Видимо не все прочитали. Советую прочитать про модификаторы. http://ru2.php.net/manual/ru/reference.pcr...n.modifiers.php  Почитайте, что обозначает модификатор "i", который вы зачем то же поставили. smile И все станет понятно. Так же посмотрите как обозначается начало и конец строки.
P.S. Тема про регулярные выражения изучается ТОЛЬКО личным опытом. Сразу решение - это зло!

Я бы сделал проверку так:
Код

<?
$text ="OK657456345";
if(preg_match('~^OK[\d]{9}$~', $text , $q)) {    
    echo 'Все верно!!!';
} else {
    echo 'Ошибка!!!';
}
?>

Цитата

Проверил данное выражение в онлайн сервисе тестирования, даже не в одном... работает!!!  smile 

Странно. А что говорил сервис, если увеличить кол-во цифр? По идее, он просто вырезал нужно кол-во, а "лишнее" оставлял. Не выдавая ошибки. Т.к. в вашем выражении отсутствуют символы начала и конца строки.

Это сообщение отредактировал(а) capitan - 25.2.2014, 14:34
PM MAIL WWW ICQ   Вверх
AVA12
Дата 25.2.2014, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



Цитата
Я не собираюсь изучать PHP и становится программистом, возможно и разве что в следующей жизни, а всё чем интересуюсь на данном форуме - делаю для себя

Людей, делающих операции на сердце, не будучи хирургами и не собираясь ими становиться, обычно сажают в тюрьму. Временами мне становится искренне жаль, что на "программистов" эта мера наказания не распространяется.
PM ICQ Jabber   Вверх
bscint13
Дата 25.2.2014, 21:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Цитата(AVA12 @ 25.2.2014,  18:56)
Цитата
Я не собираюсь изучать PHP и становится программистом, возможно и разве что в следующей жизни, а всё чем интересуюсь на данном форуме - делаю для себя

Людей, делающих операции на сердце, не будучи хирургами и не собираясь ими становиться, обычно сажают в тюрьму. Временами мне становится искренне жаль, что на "программистов" эта мера наказания не распространяется.

Слушайте AVA12!!! 

Купите очки или внимательно читайте...  smile 

Себе я могу делать что угодно и как угодно, ни у кого не спрашивая на это разрешения... 

Вы наверное больше любитель языком работать, как вижу, так вот возьмите и засуньте его туда, где не светит СОЛНЦЕ... Понятно!!!  smile 


Можете что-то добавить конструктивно, милости прошу, нет... НЕ ОТВЛЕКАЙТЕ!!!

Добавлено @ 21:23
Цитата(capitan @ 25.2.2014,  14:13)
Видимо не все прочитали. Советую прочитать про модификаторы. http://ru2.php.net/manual/ru/reference.pcr...n.modifiers.php  Почитайте, что обозначает модификатор "i", который вы зачем то же поставили. smile И все станет понятно. Так же посмотрите как обозначается начало и конец строки.
P.S. Тема про регулярные выражения изучается ТОЛЬКО личным опытом. Сразу решение - это зло!

Я бы сделал проверку так:
Код

<?
$text ="OK657456345";
if(preg_match('~^OK[\d]{9}$~', $text , $q)) {    
    echo 'Все верно!!!';
} else {
    echo 'Ошибка!!!';
}
?>

Цитата

Проверил данное выражение в онлайн сервисе тестирования, даже не в одном... работает!!!  smile 

Странно. А что говорил сервис, если увеличить кол-во цифр? По идее, он просто вырезал нужно кол-во, а "лишнее" оставлял. Не выдавая ошибки. Т.к. в вашем выражении отсутствуют символы начала и конца строки.

Вероятно модификатор "i" я поставил потому, что вместо preg_match была функция eregi, насколько правильно понимаю и помню, однако сейчас не могу утверждать, прошло достаточно долгое время...

Я Вам очень благодарен и признателен  за помощь и предоставление правила, соответствующего запросу данного поста... БЛАГОДАРЮ!

Оно действительно работает... а касательно моего примера и Вашего вопроса, если добавить более 9 цифр - все цифры, что после 9 идут справа просто обрезает, да и по сути больше никак нельзя будет ввести в поле формы номера счёта... да, я конечно, забываю о том, что есть те, у кого чешутся руки и языки... как-нибудь со временем преодолеем и ЭТО!!!

А вот что это за символ или переменная, приношу извинения за вопрос, конечно...

$q - это что??? Заранее признателен за ответ.

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

Да и программистов сейчас не так много, вот таких как AVA12, кто больше языком - много, а на деле... ?????

А Вам - всё же огромное спасибо! Да прибудет с Вами Сила! Удачи и успехов во всём!

Это сообщение отредактировал(а) bscint13 - 25.2.2014, 21:31
PM MAIL   Вверх
AVA12
Дата 25.2.2014, 21:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 135
Регистрация: 4.5.2008

Репутация: нет
Всего: 4



О, какая экспрессия!

Говоришь, себе делаешь? Взаимодействие с платежными системами? Ну-ну.
PM ICQ Jabber   Вверх
bscint13
Дата 25.2.2014, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Цитата(AVA12 @ 25.2.2014,  21:34)
О, какая экспрессия!

Говоришь, себе делаешь? Взаимодействие с платежными системами? Ну-ну.

Чего ты хочешь или добиваешься?

О себе... это был ответ на твой вопрос по хирургам... а вообще-то делаю свой проект для людей... Такой ответ устраивает!!! smile 

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

Кстати, был бы признателен за рекомендацию практичного и доступно написанного руководства, самоучителя по PHP и регулярным выражениям для начинающих, собственно для НУБов... я даже и пытаться не буду опровергать, что я НУБ, мне от этого ни холодно, ни горячо...

Я пересмотрел не мало подобных руководств, слишком заумно написаны, много воды...

Это сообщение отредактировал(а) bscint13 - 25.2.2014, 22:38
PM MAIL   Вверх
capitan
Дата 25.2.2014, 23:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 602
Регистрация: 27.2.2005
Где: Москва

Репутация: 1
Всего: 13



Цитата(bscint13 @ 25.2.2014,  21:10)
А вот что это за символ или переменная, приношу извинения за вопрос, конечно...

$q - это что??? Заранее признателен за ответ.

Почитайте первоисточник http://php.net/manual/ru/function.preg-match.php  
Это не обязательный параметр. Массив, где будут все результаты поиска.
PM MAIL WWW ICQ   Вверх
bscint13
Дата 27.2.2014, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 33
Регистрация: 13.2.2014

Репутация: нет
Всего: нет



Цитата(capitan @ 25.2.2014,  23:42)
Цитата(bscint13 @ 25.2.2014,  21:10)
А вот что это за символ или переменная, приношу извинения за вопрос, конечно...

$q - это что??? Заранее признателен за ответ.

Почитайте первоисточник http://php.net/manual/ru/function.preg-match.php  
Это не обязательный параметр. Массив, где будут все результаты поиска.

Благодарю Вас за рекомендации и оказанную помощь в решении интересующего вопроса!!!  smile  smile  smile 
PM MAIL   Вверх
  
Закрытая темаСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.2549 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.