Netbeans中的正则表达式错误在其他编辑器中不存在
Regex error in Netbeans not present in other editors
我有以下正则表达式,它在我的应用程序代码中工作得很好,其他代码编辑器没有报告它的问题。用于验证密码。
/^(?=.*[A-Za-z])+(?=.*['d])+(?=.*[^A-Za-z'd's])+.*$/
也就是说:
必须有一个字母必须是一个数字必须有一个非字母,非数字
现在看来netbeans有一个相当不错的正则表达式解析器,它已经报告了这是一个错误的声明。但由于我是regex的新手,我无法发现错误。这是由于使用正向前看的?=
与一个或多个+
在最后?
当我拿出+
错误消失,但regex停止在我的应用程序执行。
如果有人能告诉我我的表达有什么问题,那就太好了。
该语句用于我使用的jQuery验证插件,如果有帮助的话。另外,由于我使用的是插件,我不希望把它分成几个更小的(显然更简单、更清晰)表达式。这将需要大量的工作。
将量词应用于零宽度断言(例如forward)是没有意义的。这种断言的全部意义在于,它们允许您断言某些条件为真,而不消耗任何文本——也就是说,推进当前匹配位置。一些正则表达式将其视为语法错误,而另一些则有效地忽略了量词。去掉这些加号会使你的正则表达式正确:
/^(?=.*[A-Za-z])(?=.*'d)(?=.*[^A-Za-z'd's]).*$/
如果它不像预期的那样工作,你可能会遇到臭名昭著的IE向前看的错误。通常的解决方法是重新排序,使第一个前瞻性锚定在最后,像这样:
/^(?=.{8,15}$)(?=.*[A-Za-z])(?=.*'d)(?=.*[^A-Za-z'd's]).*/
(?=.{8,15}$)
只是一个例子;我不知道你真正的需求是什么。如果您确实想要施加最小和最大长度限制,那么这里是执行此操作的理想位置。
相关文章:
- ExtJS网格单元格编辑器,防止焦点松动问题
- 可以't使用PHP使用Froala编辑器上传图像URL
- 如何在corona sdk中从CK编辑器中检索数据
- Eclipse编辑器中无法访问的代码
- 如何将拼写检查集成到密文编辑器
- 一个页面上有多个Ace编辑器,没有预先设置元素
- ACE编辑器正在删除模块,因为define是't一根绳子
- 如何从DOM中删除Aloha编辑器
- 用于用户内容的简单代码编辑器/文本格式化程序(在Rails中)
- 在plone 5中将自定义的灵活性内容类型插入到tinymce编辑器中
- 如何在tinymce编辑器中将点击事件绑定到html标签
- 扩展 ACE 编辑器,如何导入自定义文件
- dhtmlx添加新行并启动单元格编辑器
- 为现有Roslyn语言lexer/parser选择基于javascript的代码编辑器
- 地理定位在Jsfidle中工作,但不在任何其他JS编辑器中
- JQuery文本编辑器-在工具栏中添加其他下拉列表
- 简单代码仅适用于某些编辑器,而不适用于其他任何地方
- 首先动态添加了TinyMCE编辑器显示,其他编辑器则没有
- Netbeans中的正则表达式错误在其他编辑器中不存在
- 是否有Sublime或Atom代码编辑器的附加组件,可以让我快速编辑其他函数中调用的函数