regex - 如何在欧芹数据欧芹模式中转义双引号?
问题描述
我正在使用欧芹进行 javascript 验证。我目前的正则表达式模式是
data-parsley-pattern="/^[0-9a-zA-Z\!\@\#\$\%\^\&\*\(\)\-\_\+\?\'\.\,\/\\r\n ]+$/"
如何在我的模式中添加双引号。我已将\"添加到模式
data-parsley-pattern="/^[0-9a-zA-Z\!\@\#\$\%\^\&\*\(\)\-\_\+\?\'\"\.\,\/\\r\n ]+$/"
但它不起作用。
解决方案
请注意,您转义了模式,您转义的几乎所有字符在字符类中都不是特殊的。
接下来,如果您使用字符串模式,您可以缩短代码。请参阅Parseley 文档:
data-parsley-pattern="\d+"
请注意,模式是锚定的,即必须匹配整个字符串。Parsley 偏离了图案看起来像的标准/pattern/{flag}
;这些被解释为文字正则表达式并且没有锚定。
这意味着您不需要^
,并且$
如果您在没有正则表达式分隔符的情况下定义模式,/
.
至于引号,您可以使用通用\xXX
符号。
您可以使用
data-parsley-pattern="[0-9a-zA-Z!@#$%^&*()_+?\x27\x22.,/\r\n` -]+"
或者
data-parsley-pattern="/^[0-9a-zA-Z!@#$%^&*()_+?\x27\x22.,/\r\n` -]+/$"
在哪里和\x27
是。'
\x22
"
请注意,-
字符类的末尾是文字连字符的安全位置,您不必将其转义。
推荐阅读
- android - 如何编写 JUnit 测试以确保 Arraylist
记录正确吗? - javascript - 是否可以在 Javascript 中使用 Linq 替换字符?
- kubernetes - 如何将 Kubernetes 与 Gitlab 集成
- r - R中循环中的字符序列匹配
- android - 如何检查用户是否点击了屏幕的特定部分?
- javascript - 在脚本中更改 HTML 中输入框的值
- dart - Dart / flutter:DropdownButton在值更改时导致异常
- jsp - JSP - 内联 JS 压缩/缩小
- sql - SQL WHERE“单词...单词”
- php - (1/1) FatalErrorException 在 ClearanceMiddleware.php 第 17 行中调用 null 上的成员函数 hasPermissionTo()