使用jqBootstrapValidation.js的FQDN正则表达式

时间:2013-11-14 19:34:45

标签: javascript regex twitter-bootstrap fqdn

我使用jqBootstrapValidation.js创建了一个表单来验证它。

但是我似乎无法使我的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格式?

1 个答案:

答案 0 :(得分: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}$/"