2014-01-30 3 views
1

У меня есть яваскрипт DatePicker, и я меняюсь даты, как они печатают в понедельник, вторник и т.д.соответствовать любой части строки «завтра», начиная с томом

Ищу краткий образ, чтобы соответствовать любой части строка завтра, но не до тех пор, пока не будет введен «tom».

Я хочу, чтобы выделить следующую дату, когда пользователь: «Томь» «ТОММО» «tommor» «tommoro» «Завтра»

Не будучи слишком явным, как я могу соответствовать на любая из этих строк?

+0

С одним или двумя 'm'? – Toto

+3

Fyi, 'tommorow' написано' завтра' – Bojangles

+0

Вы выделите следующую дату, как только у пользователя будут типы «tom», правильно? Тогда вам действительно нужно соответствовать другим частям слова? – Theox

ответ

3

Как насчет:

\btom(?:o(?:r(?:r(?:ow?)?)?)?)?\b 

(?:) является non capture group он более эффективен, чем захват группы. Он имеет то же значение, что и группа захвата. Он используется, когда вы хотите группировать элементы, но не нужно ничего захватывать.

+0

не подходит после tomorr, tomorro или завтра – dagda1

+0

@ dagda1: Верно, я пропустил 'r'. Исправленный. – Toto

+0

Отличный материал, если возможно, вы могли бы дать краткое объяснение. Я получаю слово границы, но это примерно так :). – dagda1

1

Если вы хотите один регулярное выражение, чтобы соответствовать:

tom, tomo, tomor, tomorr, tomorro, tomorrow 

Использование:

^tom(o(r(r(ow?)?)?)?)?$ 
+0

, что регулярное выражение совпадает только с томом – dagda1

+0

@ dagda1 Ваш вопрос запросил, чтобы он совпал с 'tom' ...? – Jerry

+0

@ dagda1 Это регулярное выражение проверяет, соответствует ли строка тестируемой строке. Он работает для каждой комбинации, которую я описал. – hsz

1

Зачем вам нужно, чтобы соответствовать другим частям завтра, когда он уже должен совпадать со стороны «Томь»? Просто матч для tom

0

Это регулярное выражение будет соответствовать тому, что вы хотите:

tom(o(r(r(ow?)?)?)?)? 

Но, как я уже сказал в своем комментарии, соответствующий «Томь» может быть достаточно.

Смежные вопросы