2013-10-31 36 views
1

我有一個驗證字符串是一個FQDN一個正則表達式:的JavaScript:FQDN正則表達式不驗證長名稱

var fqdnRegExp = new RegExp("^([a-z0-9]+\\.)?[a-z0-9][a-z0-9-]*\\.[a-z]{2,6}$"); 

它驗證正確這樣的名字:google.commypage.mycompany.com。但是,當子域名是3d + lvl時,驗證會崩潰。例如,test.test2.test3.com尚未驗證。

這個正則表達式有什麼問題?

回答

3

只要允許中央圖案([a-z0-9][a-z0-9-]*\\.)出現不止一次:

var fqdnRegExp = new RegExp("^([a-z0-9]+\\.)?([a-z0-9][a-z0-9-]*\\.)+[a-z]{2,6}$"); 
+0

謝謝,我沒想到這件事,HM。 – Dragon