我正在使用1000hz bootstrap验证器验证电子邮件输入,我无法逃脱正则表达式@
中的“@”字符。有没有人有想法?
我试过@@,@('@')甚至是十六进制代码(@)。十六进制工作正常,直到我将谷歌浏览器更新为V53,现在它已不再有效
这是我的意见:
<input type="text" pattern="^[a-zA-Z0-9\.\_%+-]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}" required data-error="Enter a valid email address" name="contractor-email" class="form-control" placeholder="e.g. smith.mike@smith.com" />
此外,Chrome会抛出以下错误消息:validator.min.js:94 Pattern属性值^ [a-zA-Z0-9 ._%+ - ] + @ [a-zA-Z0-9.-] +。[a-zA-Z] {2,4}不是有效的正则表达式:未捕获的SyntaxError:无效的正则表达式:/^[a-zA-Z0-9._%+-]+@[a-zA -Z0-9 .-] +。[a-zA-Z] {2,4} /:逃脱无效
提前致谢。
答案 0 :(得分:0)
我不知道这是否是最佳做法,但使用@(“@”)可以正常工作
答案 1 :(得分:0)
事实证明,错误不是来自'@'符号,而是关于我在正则表达式的第一个元素中转义字符的方式。以下正则表达式有效:^[a-zA-Z0-9%+-\._]+@[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,4}
。
感谢那些帮助过的人。