Я работаю над проблемой, когда пользователи (водители грузовиков в этом случае) используют SMS для отправки информации о статусе работы. Я хочу держать ключ простым, так как не все пользователи имеют смартфоны, поэтому я принял несколько простых коротких кодов для их ввода. Вот некоторые примеры и их значения:Полиморфная строка для шаблона
- P # 123456-3 (Это для сбора нагрузки 123456-3)
- D # 456789-1 (для сбрасывания груза 456789- 1)
- L # 345678-9 (Load 345678-9 будет поздно)
Это довольно простой, но пользователи (и водителей грузовиков) является то, что они будут ключ обновления в несколько девиантные манеры, такие как:
- #D 456789-1
- D # 456789 - 1
- D # .456789-1 Эта нагрузка выглядит мокрая мне сделать, чтобы cancelthis Каждому из нас Заказать
Вы можете в значительной степени придумать дюжину других перестановок, и мне не трудно поймать и исправить то, что я могу себе представить.
В основном я использую регулярные выражения для проверки ввода ко всем моим воображаемым «плохим» образцам, а затем извлекаю то, что, как я предполагаю, является хорошими частями, переустанавливая их в правильном порядке.
Это новые ошибки, которые вызывают у меня проблемы, поэтому мне стало интересно, был ли более общий метод, когда я могу передать «шаблон» и «сообщение» функции, которая лучше всего повернуть «сообщение» «во что-то совпадающее с« шаблоном ».
Мои поиски не нашли ничего, что действительно соответствует тому, что я пытаюсь сделать, и я даже не уверен, есть ли хороший общий способ сделать это. Я использую PHP для этой реализации, но любой пример должен помочь. У любого из вас есть метод?
Почему вы не отправить SMS обратно, что код посланный водителя не соответствует указанный формат? – HamZa
Я не уверен, есть ли уловный подход. Будет интересно посмотреть, что предлагается в ответах. Самый безопасный способ, который я могу себе представить, к сожалению, связан с мобильным приложением, а не с использованием сырого пользовательского ввода. Позволяя пользователю выбрать статус, а затем номер задания, он все равно может отключить текст. Или комбинация Regex и предыдущего комментария, пытайтесь поймать ошибки, если все не срабатывают. – Lex
«ОШИБКА» просто код, пожалуйста, нет пробелов, нет точек, комментариев нет. THX « –