我正在使用 polymer 纸输入并使用图案来验证输入字段。
我的验证字符串是
^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$
我检查了它是一个有效的表达式 HERE
但是,我的 polymer 代码在控制台中抛出错误,指出存在转义问题。
<paper-input label="Your name" pattern='^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$' required onfocusout="validate()" error-message="Please enter VALUE"></paper-input>
控制台显示错误
Pattern attribute value ^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$ is not a valid regular expression: Uncaught SyntaxError: Invalid regular expression: /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/: Invalid escape
这是FIDDLE 。错误可以在控制台中看到。
最佳答案
你不能逃避"
:
<form>
<input label="Your name" pattern='^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$' required error-message="Please enter VALUE">
<input type="submit" value="Submit">
</form>
注意:我在这里将 paper-input
更改为 input
以使代码片段正常工作。
关于javascript - polymer 在有效的正则表达式上抛出错误无效的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41297763/