3
我將在我的應用程序中添加對通配符的支持。通配符域驗證器
它應該符合下面的要求。通配符必須包含:
- UTF-8 alphabetical characters
- .,*,^,+,?,$,[],[^],:,/
- Domain parts other than the last may begin with a digit(from RFCs)
而且用戶可以指定簡單的域名作爲test.test
的想法是應該做的兩個步驟:
驗證通配符是否有以下模式匹配:
^[\\pL0-9\\[\\].^$?*+:/]+
。如果它匹配,嘗試編譯爲java模式。- 如果沒有最後的正則表達式匹配,則認爲是簡單的域名,並使用谷歌圖書館
com.google.common.net.InternetDomainName
驗證它,但我不知道過去的做法是否會覆蓋所有可能的情況。
作爲例子,當我指定這樣的域: test.10
它與模式匹配,但它不符合關於域中的數字的第三個要求。
如果您的建議解釋瞭如何滿足所有定義的要求,這將是一件好事。在這種情況下也很好地瞭解更好的解決方案。
'(^ [\\ pL0-9 \\ [\\]^$ * +:/?]。+ \\)?^ [\\ PL \ \ [\\]。^ $?* +:/] +' – Valen
感謝您的快速回答。我已經嘗試過你的模式。但不幸的是,它不能按預期工作。因此,它與以下認爲符合第三條要求的域名不符:10test.com,test.10test.com – fashuser