f-6ren">
gpt4 book ai didi

javascript - 在 javascript 中否定正则表达式中的模式时出现错误

转载 作者:行者123 更新时间:2023-12-02 22:25:36 26 4
gpt4 key购买 nike

我正在尝试实现一个正则表达式,用于匹配单个单词中除第一个字符和后跟 _ 的任何字符之外的所有字符,如下所示:

"HELLO_WORLD".replace(^([A-Z]|/_[A-Z]),f => f.toLowerCase()) // Hello_World

但这给了我错误:

SyntaxError: Unexpected token ^

有人能指出哪里出了问题吗?我基本上在关注这个问题Regex: match everything but specific pattern

编辑:

这是由于缺少字符串文字而发生的,但现在我有一个后续问题,因为我的正则表达式没有按我想要的方式工作。

"HELLO_WORLD".replace(/^([A-Z]|_[A-Z])/,f => f.toLowerCase()) // hELLO_WORLD

当我想要 Hello_World 时,这会给出 hELLO_WORLD

最佳答案

如果您想匹配字符串开头的 A-Z 或字符串中的 _A-Z,则脱字号 ^ 应该位于交替区域内。

您仅将单个字符替换为小写,因为您没有使用 g 全局标志。

您可以使用 replace 来使用 2 个捕获组而不是 1,其中第二个捕获组匹配 1+ 次 A-Za-z,并且该匹配将被替换为小写。

(^[A-Z]|_[A-Z])([A-Za-z]+)

Regex demo

let result = "HELLO_WOrLD".replace(/(^[A-Z]|_[A-Z])([A-Za-z]+)/g, (_, g1, g2) => g1 + g2.toLowerCase());
console.log(result);

关于javascript - 在 javascript 中否定正则表达式中的模式时出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59081300/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com