0

我使用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 使用了错误的格式?

4

1 回答 1

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}$/"
于 2013-11-15T19:10:45.450 回答