2012-07-10 265 views
0

在我的Web應用程序中,我有文本框,用戶應該輸入5到200個字符的字符。正則表達式 - 不應該允許空格不斷連續

問題是 - 當用戶連續5個空格並保存輸入時,它會成功保存。

我應該阻止用戶連續輸入'空格'(或單獨的空格)。

但我可以允許單個空白(如'customer table',customer table')。

但我可以讓用戶輸入帶有字符的空格。另外我不希望名稱以空格開頭。

任何人都可以請幫助我獲得上述條件的REGEX?

+2

'「\\ s {2,}」'匹配2個或更多空格字符。你顯然可以將其改爲5或任何你想要的。 – Thor84no 2012-07-10 06:44:23

+0

這聽起來像是一個String.trim()的工作,而不是正則表達式。 – Keppil 2012-07-10 06:58:22

+0

我正在使用Spring Roo。所以我必須在我的域類中單獨使用REGEX – user1514499 2012-07-10 07:00:04

回答

2

^\S+(\s\S+)*$

這個規則表達式應該做你想要什麼。它接受以非空白字符開始並以非空白字符結尾的非空字符串,並且僅接受單詞之間的單個空白字符。

您應該單獨檢查總字符串長度。

請注意,您需要在Java中轉義\。

+0

這是有效的。非常感謝您的回答。 – user1514499 2012-07-10 07:28:21

0

開始用空格或多於2個連續位:

^\s|\s{2,} 
0

我建議你創建兩個模式 一個^\s和其他\s{2,}如果任何一個接着匹配拒絕的字符串 或者使用{2,}如果你想禁止像空白空間和換行符匹配的東西,但是你不應該在那裏有新的行。

0

將所有"\\s{2,}"替換爲" ",然後將所有"^\\s+|\\s+$"替換爲""(或者根據您的邏輯,如果找到這些,則進行搜索和拒絕)。

相關問題