2013-11-14 31 views
0

我使用jqBootstrapValidation.js創建了一個表單來驗證它。使用jqBootstrapValidation.js進行FQDN正則表達式

但是,我似乎無法得到我的FQDN格式字段正常工作的正則表達式。

<input class="form-control" 
type="text" 
name="cn" 
id="commonname" 
data-validation-regex-regex="/^(?=.{1,254}$)((?=[a-z0-9-]{1,63}\.)(xn--)?[a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,63}$/i" 
data-validation-regex-message="Must enter a vaild FQDN" required> 

它使我輸入的任何FQDN無效。

我知道正則表達式有幾種不同的格式。

我使用javascript格式錯誤嗎?

+0

爲什麼要打擾一個正則表達式,當你可以做一個nslookup? https://www.google.com/search?q=javascript+nslookup –

+0

但是,除非域名已經註冊並且DNS設置正確,否則這將不起作用。 –

+0

那麼如果我輸入「a.b.cd」是一個有效的FQDN?它會匹配你做任何表達。要點是,除非您嘗試解決它,否則您真的不知道它是有效的條目。 –

回答

0

爲了幫助調試,請嘗試下面的1 - 6並在使用中報告通過/失敗。
輸入遠程應匹配的數據。

1.  "/(?!)/"      // Should FAIL 
2.  "/^(?=.{1,254}$)/"   // Should PASS 
3.  "/(?=[\S\s]{1,254})/"   // Should PASS 


// 4 & 5 have \. replaced with [.] 
// and added (?i) 
// (If JS doesn't support (?i) modifiers, remove them 
// ------------------------------------------------------- 

    // this has no lookaheads nor anchors 
    4.  "/(?i)((xn--)?[a-z0-9]+(-[a-z0-9]+)*[.])+[a-z]{2,63}/" 

    // this has anchors, but no lookaheads 
    5.  "/^(?i)((xn--)?[a-z0-9]+(-[a-z0-9]+)*[.])+[a-z]{2,63}$/" 

    // this has anchors and lookaheads 
    6.  "/^(?i)(?=.{1,254}$)((?=[a-z0-9-]{1,63}[.])(xn--)?[a-z0-9]+(-[a-z0-9]+)*[.])+[a-z]{2,63}$/" 
+0

謝謝@sln。已經嘗試了所有上述但沒有運氣。我已經聯繫了寫劇本的人,請求進一步的指導。 –

+0

我發現以下正則表達式可以工作: '((a-zA-Z0-9] | [a-zA-Z0-9] [a-zA-Z0-9 - ] * [a-zA (A-Za-z0-9)] *([A-Za-z]] [A-Za-z0-9]米不知道爲什麼?這是與上述不同的格式嗎? –

相關問題