将任何字符串转换为驼峰式大小写

如何使用javascript正则表达式将字符串转换为驼峰式?


EquipmentClass name或 Equipment className或equipment class name或Equipment Class Name


应该全部变成:equipmentClassName。


Helenr
浏览 1255回答 3
3回答

绝地无双

查看您的代码,只需两个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();  });}

呼啦一阵风

如果有人在使用lodash,则有一个_.camelCase()功能。_.camelCase('Foo Bar');// → 'fooBar'_.camelCase('--foo-bar--');// → 'fooBar'_.camelCase('__FOO_BAR__');// → 'fooBar'

呼如林

我刚结束这样做:String.prototype.toCamelCase = function(str) {    return str        .replace(/\s(.)/g, function($1) { return $1.toUpperCase(); })        .replace(/\s/g, '')        .replace(/^(.)/, function($1) { return $1.toLowerCase(); });}我试图避免将多个replace语句链接在一起。在我的函数中有$ 1,$ 2,$ 3的东西。但是这种类型的分组很难理解,而您对跨浏览器问题的提及也是我从未想过的。
打开App,查看更多内容
随时随地看视频慕课网APP