2013-02-14 50 views
0

我有這個註冊EXP與註冊表達了詞與詞之間的多個間隔

[a-zA-Z]+(([\'\,\.\-\s][a-zA-Z])?[a-zA-Z]*)*$ 

它允許單詞之間有一個空格,我怎樣才能使這個REG EXP接受後的單詞和空間之間的多個空格最後一個單詞和第一個單詞之前。如果用戶輸入具有多個空格的文本,我如何將它修剪到一個空格。

+0

你不需要逃避之間'[]'字符,所以它可以是'[」,.- \ S]'。 – 2013-02-14 06:24:36

回答

1

試試這個正則表達式:[a-zA-Z]+((\s*[',.-]?\s*[a-zA-Z])?[a-zA-Z]*)*$

+0

這沒有奏效我 – GANI 2013-02-14 06:45:23

+0

因此,向我們展示您的數據必須通過和失敗的例子 – pstr 2013-02-14 06:53:36

+0

例如:範德牆..這將通過範德爾牆這將失敗,因爲空格不止一個..我需要一個exp會通過 – GANI 2013-02-14 06:57:49

1

匹配前用一個空格替換全部\s+。同時處理修整和匹配,無需額外成本。

+0

這就是它應該如何[a-zA-Z] +(([\'\,\。\ - \ s +] [a-zA-Z])?[a-zA-Z] *)* $ – GANI 2013-02-14 06:17:08

+0

@ user1016740:不,保持不變。在將它與該模式匹配之前,只需在字符串上運行替換。 – Ryan 2013-02-14 06:17:53

+0

如果用戶輸入多個空格的字符串驗證失敗的權利,我需要如果用戶輸入多個空格字符串它應該工作 – GANI 2013-02-14 06:25:00