首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >针对Safari的JS Regex后视/前视的解决方法

问针对Safari的JS Regex后视/前视的解决方法
EN

Stack Overflow用户
提问于 2021-03-31 14:58:53
回答 1查看 115关注 0票数 1

我在JS const camel = const camel = /((?<=[A-Z])(?=[A-Z][a-z]))/g;中有一个正则表达式

它主要是尝试查找位置,之前是大写字符,之后是大写字符,后面是小写字符。

一些测试用例来验证它的工作:

下面是我发现很难有一个优雅的作品的情况。

'runUnitTESt'.replace(camel, ' ') = 'runUnitTE St'

此正则表达式在Chrome中有效,但在safari中不起作用,因为它不支持后视/前视正则表达式。我花了一些时间试图想出一个好的解决办法,但没有找到。有什么见解吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2021-04-07 04:36:25

在您的模式中,两个断言周围有一个捕获组。您可以做的是将第一个后视断言改为匹配,并保留第二个前视断言。

代码语言:javascript
复制
[A-Z](?=[A-Z][a-z])

Regex demo

然后在替换中使用完全匹配,后跟空格$&

​

代码语言:javascript
复制
const camel = /[A-Z](?=[A-Z][a-z])/g;
console.log('runUnitTESt'.replace(camel, "$& "));

​

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66883068

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档