如何使用 javascript 正则表达式将字符串转换为驼峰式大小写?
EquipmentClass name
或
Equipment className
类名或设备 equipment class name
或 Equipment Class Name
都应该变成: equipmentClassName
。
原文由 Scott Klarenbach 发布,翻译遵循 CC BY-SA 4.0 许可协议
如何使用 javascript 正则表达式将字符串转换为驼峰式大小写?
EquipmentClass name
或
Equipment className
类名或设备 equipment class name
或 Equipment Class Name
都应该变成: equipmentClassName
。
原文由 Scott Klarenbach 发布,翻译遵循 CC BY-SA 4.0 许可协议
查看您的代码,您只需两次 replace
调用即可实现:
function camelize(str) {
return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) {
return index === 0 ? word.toLowerCase() : word.toUpperCase();
}).replace(/\s+/g, '');
}
camelize("EquipmentClass name");
camelize("Equipment className");
camelize("equipment class name");
camelize("Equipment Class Name");
// all output "equipmentClassName"
编辑: 或者在单个 replace
调用中,也捕获 RegExp
中的空格。
function camelize(str) {
return str.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, function(match, index) {
if (+match === 0) return ""; // or if (/\s+/.test(match)) for white spaces
return index === 0 ? match.toLowerCase() : match.toUpperCase();
});
}
原文由 Christian C. Salvadó 发布,翻译遵循 CC BY-SA 4.0 许可协议
10 回答11.2k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答2.8k 阅读✓ 已解决
3 回答2.3k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
我刚结束这样做:
我试图避免将多个替换语句链接在一起。我的函数中有 1 美元、2 美元、3 美元的东西。但是这种类型的分组很难理解,你提到的跨浏览器问题也是我从未想过的。