我使用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格式?
答案 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}$/"