问题描述
我正在使用lodash将文本转换为snakeCase,并且陷入了一种特殊情况,即我应该保持字母数字值不变。
当我将字符串传递为“ This is AAA456B”时。 lodash revealjs-url
会将其转换为“ this_is_aaa_456_b”
预期结果类似于“ this_is_aaa456b”。
有没有一种方法可以覆盖破折号snakeCase(str)
以忽略字母数字值?
解决方法
您应该创建自己的函数,而不是覆盖现有的
const str = "This is AAA456B"
_.mixin({
customSnakeCase: s => _
.chain(s)
.split(/(\d+)/)
.map(_.snakeCase)
.join('')
.value()
})
console.log(_.customSnakeCase(str))
<script src="https://cdn.jsdelivr.net/npm/lodash@4.17.20/lodash.min.js"></script>