javascript - 正则表达式 - 反应原生中未处理的 js 异常
问题描述
我在我的 react-native 应用程序中使用以下正则表达式。
这是一个电子邮件验证正则表达式:
^[\w]+@((?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+)(?:[A-Za-z0-9-]{2,63}(?<!-))
这在浏览器中工作正常,但由于以下原因使反应本机应用程序崩溃:
没有堆栈',原因:'未处理的 JS 异常:无效的正则表达式:无效的组说明符名称
有人可以帮助让它在本机反应上工作,也许通过实现这个正则表达式实现的同样的事情,但没有后向表达式?
解决方案
该问题可能是由(?<!-)
您的 JavaScript 引擎不支持的正则表达式模式末尾的负前瞻引起的。为了确保电子邮件末尾不会出现连字符,我们可以简单地使用:
^[\w]+@((?:[A-Za-z0-9](?:[A-Za-z0-9-]{0,61}[A-Za-z0-9])?\.)+)(?:[A-Za-z0-9-]{1,62}[A-Za-z0-9])
即,仅用于[A-Za-z0-9]
表示模式中 63 个可能字符中的最后一个。
推荐阅读
- python - 使用 python selenium 复制时遇到问题
- css - CSS:放置两个不同大小的元素,使中间正好在它们之间
- python - 在存储库的一段时间内获取所有观星者
- swift - MapKit旋转相机没有距离和中心
- xpages - 从 R10 迁移到 R11 后 XPage 无法正常工作
- firefox-developer-tools - Firefox 开发者工具不会抱怨 JSON 无效
- javascript - 每次单击时更改元素的颜色(Vice-Versa)
- python - 基于 3 列的 Pandas Dataframe 字符串规则
- c# - 将 System.Drawing.Image 保存为 pdf 文件
- java - 在没有 Maven 的情况下将库添加到 NetBeans 项目