Javascript使用RegExr正则替换时如何跳过首位置匹配实现驼峰转下划线
正则调整方案
你可以通过负向后行断言限定跳过首位置的大写字母,调整后的正则为 /(?<!^)[A-Z]/g,完整代码如下:
str.replace(/(?<!^)[A-Z]/g, letter => `_${letter.toLowerCase()}`)
正则规则说明
(?<!^)是负向后行断言,要求当前匹配的大写字母的前一个位置不能是字符串起始位,自然就跳过了首字符的大写匹配[A-Z]匹配所有大写英文字母g全局匹配标识,处理字符串内所有符合规则的字符
旧环境兼容方案
如果运行环境不支持ES2018引入的后行断言语法,可以拆分处理首字符和剩余字符:
const result = str[0] + str.slice(1).replace(/[A-Z]/g, letter => `_${letter.toLowerCase()}`)
内容的提问来源于stack exchange,提问作者icelemon
相关产品推荐
相关产品推荐

