2014-01-30 41 views
1

我有一個JavaScript日期選擇器,我改變日期,他們在週一類型,週二等匹配字符串「明天」的任何部分開始在湯姆

我正在尋找一種簡潔的方式來匹配的任何部分明天的字符串,但至少沒有輸入「tom」。

我想強調下一個日期,當用戶類型: 「湯姆」 「tommo」 「tommor」 「tommoro」 「明天」

沒有過於明確的,我怎麼能匹配任何這些字符串?

+0

有一兩個'm'? – Toto

+3

Fyi,'tommorow'拼寫''明天' – Bojangles

+0

只要用戶輸入「tom」類型,你就會突出顯示下一個日期,對吧?那麼你是否真的需要匹配詞的更多部分? – Theox

回答

3

如何:

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

(?:)non capture group它比捕獲組更有效。它與捕獲組具有相同的含義。當你想要分組元素時使用它,但不需要捕獲任何東西。

+0

在明天,明天或明天后不匹配 – dagda1

+0

@ dagda1:對,我錯過了'r'。糾正。 – Toto

+0

好東西,如果可能的話,你可以給一個簡短的解釋。我得到的字邊界,但這是關於它:)。 – dagda1

1

如果你想要一個正則表達式匹配:

tom, tomo, tomor, tomorr, tomorro, tomorrow 

用途:

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

正則表達式只匹配tom – dagda1

+0

@ dagda1你的問題要求在'tom'匹配以及...? – Jerry

+0

@ dagda1這個正則表達式測試字符串是否匹配測試字符串。它適用於我所描述的每個組合。 – hsz

1

爲什麼你需要到明天的比賽的其他部位時,它應該已經匹配的部分「湯姆」?只是匹配tom

0

此規則表達式將與你想要什麼:

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

但正如我在我的評論說,匹配「嗵」就足夠了。