如何使用javascript正则表达式将字符串转换为驼峰大小写?
设备类名称或 设备类名或设备类名或设备类名
应该全部变成:equipmentClassName。
如何使用javascript正则表达式将字符串转换为驼峰大小写?
设备类名称或 设备类名或设备类名或设备类名
应该全部变成:equipmentClassName。
当前回答
如果不需要regexp,你可能想看看我很久以前为Twinkle做的以下代码:
String.prototype.toUpperCaseFirstChar = function() {
return this.substr( 0, 1 ).toUpperCase() + this.substr( 1 );
}
String.prototype.toLowerCaseFirstChar = function() {
return this.substr( 0, 1 ).toLowerCase() + this.substr( 1 );
}
String.prototype.toUpperCaseEachWord = function( delim ) {
delim = delim ? delim : ' ';
return this.split( delim ).map( function(v) { return v.toUpperCaseFirstChar() } ).join( delim );
}
String.prototype.toLowerCaseEachWord = function( delim ) {
delim = delim ? delim : ' ';
return this.split( delim ).map( function(v) { return v.toLowerCaseFirstChar() } ).join( delim );
}
我没有做任何性能测试,regexp版本可能更快,也可能不会更快。
其他回答
这为我解决了这个问题,处理特殊字符和介词
export function camelize(str) {
if (!str) {
return str;
}
const preposicoes = ['da', 'de', 'di', 'do', 'du'];
return str.toLowerCase().split(' ').map(c => {
if (preposicoes.includes(c)) {
return c;
}
return `${c.substring(0, 1).toUpperCase()}${c.substring(1, c.length)}`;
}).join(' ');
}
可靠的高性能示例:
function camelize(text) {
const a = text.toLowerCase()
.replace(/[-_\s.]+(.)?/g, (_, c) => c ? c.toUpperCase() : '');
return a.substring(0, 1).toLowerCase() + a.substring(1);
}
情况下,修改字符:
连字符- 下划线_ 时期。 空间
const toCamelCase = str =>
str
.replace(/[^a-zA-Z0-9]+(.)/g, (m, chr) => chr.toUpperCase())
.replace(/^\w/, c => c.toLowerCase());
一个有趣的方法是通过dataset属性。
函数camelize(dashString) { let el = document.createElement('div') el.setAttribute(数据——+ dashString”) 返回种(el.dataset) [0] } camelize('x-element') // 'xElement'
如果有人正在使用lodash,则有_.camelCase()函数。
_.camelCase('Foo Bar');
// → 'fooBar'
_.camelCase('--foo-bar--');
// → 'fooBar'
_.camelCase('__FOO_BAR__');
// → 'fooBar'