javascript - polymer 在有效的正则表达式上抛出错误无效的正则表达式

标签 javascript regex validation polymer paper-elements

我正在使用 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/

相关文章:

javascript - childTemplate 中的 ParentContext - Meteor

java - 正则表达式保留空输入

带有正则表达式的 Java String strip

Angular 响应式(Reactive)表单验证器最初显示错误消息?

Php感谢您在同一页面中留言

javascript - jQuery.scrollSpeed.js 重置页面偏移量

javascript - 在 WinJS.UI.Pages 中显示完整的 HTML 内容

javascript - 在没有对应 'Async' 语法的情况下定义 'Await' 函数的示例

regex - 如何查找一个单词是否包含模式字符的排列?

检查 .txt 文件的格式在 C 中是否有效?