我正在尝试使用来自http://www.regular-expressions.info/email.html的正则表达式模式验证角度的电子邮件,如下所示:
input.form-control(type="email", placeholder="Email", name="email", ng-model='doctor.email', ng-pattern='[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?')
给出了这个错误:
Error: /home/pravin/zyoba/nimbus/nimbus-web/views/addDoc.jade:50
48| .form-group.clearfix
49| .col-xs-7
> 50| input.form-control(type="email", placeholder="Email", name="email", ng-model='doctor.email', ng-pattern='[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?')
51| span.font-red.font-23 *
52| span.icon-form-cross(ng-show="docRegForm.email.$dirty && validation.test(docRegForm.email.$error)")
53|
start character ( does not match end character ]
at Object.Lexer.bracketExpression (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/lexer.js:130:46)
at Object.Lexer.attrs (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/lexer.js:581:24)
at Object.Lexer.next (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/lexer.js:867:15)
at Object.Lexer.lookahead (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/lexer.js:113:46)
at Parser.lookahead (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/parser.js:100:23)
at Parser.peek (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/parser.js:77:17)
at Parser.tag (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/parser.js:733:22)
at Parser.parseTag (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/parser.js:719:17)
at Parser.parseExpr (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/parser.js:188:21)
at Parser.block (/home/pravin/zyoba/nimbus/nimbus-web/node_modules/jade/lib/parser.js:689:25)
我是正则表达式noob,并且不知道复杂的正则表达式。请有人帮我调试错误。
答案 0 :(得分:1)
您的问题很可能是在正则表达式中有一个引号('
),以及分隔正则表达式字符串的开头和结尾。
你需要以某种方式逃避内部引用。
答案 1 :(得分:1)
在正则表达式中,您使用的是单引号字符,该字符也用作表达式的引号字符。你需要逃脱它。请尝试以下方法:
ng-pattern='[a-z0-9!#$%&\'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?')