我有以下内容:
var test = "deskLight";
console.log(test.replace(/([a-z])([A-Z])([a-z])/g, "$1_" + "$2".toLowerCase() + "$3" )));
结果是desk_Light
我想要desk_light
答案 0 :(得分:4)
您可以使用以replace()
为参数的match
function callback。
text = 'deskLight'.replace(/([a-z])([A-Z])([a-z])/g, function(match)
{
return match[0] + '_' + match[1].toLowerCase() + match[2];
}
)
console.log(text)
甚至更简单的解决方法 @RobG 。
text = 'deskLight'.replace(/(^[a-z]*)(.*$)/,'$1_$2').toLowerCase()
console.log(text)