2013-05-08 44 views
-2

我在註冊表中驗證名字,它只允許使用小寫字母和大寫字母以及(,/,#, - )的字母。Java和android中的驗證模式?

my validation patter is ^(([a-zA-Z])(/,#,-))*$ 

但它沒有正確驗證。請任何人幫我解決這個問題,並給出一個提示,正確地創建模式。

+0

你能舉一個例子,它不能正常工作嗎? – sandkasten 2013-05-08 11:46:10

+0

「AsdF-」是否匹配? 「As-Df」?它可以是空的嗎?它可以有空間嗎?一些名字由兩個或更多名字組成)你應該定義它何時應該工作,什麼時候不應該。否則,可能需要我們更多的時間來幫助你。順便說一下,對於第一個名字,#和/ /實際使用?我只是困惑 – Korcholis 2013-05-08 12:00:14

回答

1
boolean test = "a#aa-/".matches("^[a-zA-Z#/-]+$"); 
Log.e("TEst", "test " + test); 

嘗試這種方式

1

正如sandkasten說你應該提供什麼不起作用的例子。我認爲你正在尋找這個

^([a-zA-Z]|[/#-])*$ 

管道(|)表示字符或其中的一個/#*

2

試試這個表達式:[A-ZA-Z] +(\ - [一個-ZA-Z] +)?

您可以測試正則表達式在線上有所不同網站如this one

1

根據您的場所(使用/ - #,未使用的空間,但作爲一個名字),它可能是這樣的:

^([A-Z][a-z]*([\/#\-][A-Z][a-z]*)*)$ 

這將匹配:

  • 阿爾弗雷德
  • 羅伯特 - 路易斯
  • 約翰#約瑟夫
  • 凱文/貝蒂

,但不會

  • 查爾斯(L是大寫和shouln't)
  • Mona Sue(空間)
  • 便士(P不是大寫)

但是,您絕對需要給我們一些例子,或者我們只是在玩而不是幫助您。我們沒有水晶球(至少是我)