没有堆栈',原因:'未处理的 JS 异常:无效的正则表达式:无效的组说明符名称
Posted
技术标签:
【中文标题】没有堆栈\',原因:\'未处理的 JS 异常:无效的正则表达式:无效的组说明符名称【英文标题】:no stack', reason: 'Unhandled JS Exception: Invalid regular expression: invalid group specifier name没有堆栈',原因:'未处理的 JS 异常:无效的正则表达式:无效的组说明符名称 【发布时间】:2019-07-11 13:49:55 【问题描述】:我的应用无法启动,它会出现异常中断:
Invalid regular expression: invalid group specifier name
no stack
run
NativeRunnable.java
handleCallback
Handler.java:873
dispatchMessage
Handler.java:99
dispatchMessage
MessageQueueThreadHandler.java:29
loop
Looper.java:209
run
MessageQueueThreadImpl.java:232
run
Thread.java:914
我发现在ios或android中,如果我启用了live javascript debug,那么问题就不会出现,但是为什么呢?
我在 xcode 和 android 上遇到的同样的错误:
no stack', reason: 'Unhandled JS Exception: Invalid regular expression: invalid group specifier name
我不知道在哪里挖?或者在哪里调试? 有谁可以帮忙?
【问题讨论】:
您是否尝试过仔细查看代码中的正则表达式?也许其中一个包含unsupported lookbehind? 你是对的,我已经找到了,虽然我认为一旦我进入使用正则表达式的屏幕就会出现这样的错误......而不是在应用程序启动时 JavaScript 中的正则表达式在代码执行之前被编译。不知道为什么开发和生产之间存在差异,这可能与编译成平台特定代码的内容有关。 【参考方案1】:也遇到了这个问题,将一个电子项目移植到 RN。将其追踪到一个后向正则表达式,Chrome 支持该正则表达式,但 Safari 不支持(并且显然是本机反应)——请参阅Works in Chrome, but breaks in Safari: Invalid regular expression: invalid group specifier name /(?<=\/)([^#]+)(?=#*)/
在我的项目中搜索 (?
导致我找到了罪魁祸首!
【讨论】:
【参考方案2】:您没有收到包含此错误的堆栈的原因是 JavaScript 中的正则表达式文字是在脚本执行之前编译的。
正则表达式文字在脚本加载时提供正则表达式的编译。
——MDN - Regular Expressions
不幸的是,这意味着有问题的正则表达式可能在代码中的任何位置,因为所有 ES2015 模块都捆绑在 react-native 应用程序中。
【讨论】:
以上是关于没有堆栈',原因:'未处理的 JS 异常:无效的正则表达式:无效的组说明符名称的主要内容,如果未能解决你的问题,请参考以下文章
由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“initWithAPIKey 异常:无效的 API 密钥格式”