我查看了其他一些问题,但还没有找到特定于此问题的问题。这是我所拥有的:
function toCamelCase(str){
const _str = str.split(/-|_/)
for (let i = 0; i < _str.length; i++) {
// if first character of string is capital,
// make it Pascal Case, not Camel Case
if (i === 0) {
_str[i][0] =
_str[i][0].match(/[A-Z]/)
? _str[i][0].toUpperCase()
: _str[i][0].toLowerCase()
} else {
_str[i][0] = _str[i][0].toUpperCase()
}
}
return _str.join("")
}
toCamelCase("This-is_a_test-string") // Thisisateststring
输出应为ThisIsATestString
,但由于某种原因它不起作用。奇怪的是,第一个可以if (i === 0) ..
正确输入并分配,但其余的即使输入也无法正常工作。
为什么不对单个字母使用功能替换呢?
const toCamelCase = string => string.replace(/[_\-](.)/g, (_, g) => g.toUpperCase());
console.log(toCamelCase("This-is_a_test-string"));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句