我正在使用以下规则在JavaScript/Node JS程序中生成一些有意义的名称:
输入: "tenancy_account__accountPublicId__workspace__workspacePublicId__remove-user__userPublicId"
期望的输出: "TenancyAccountAccountPublicIdWorkspaceWorkspacePublicIdRemove-userUserPublicId"
规则:
输入: "tenancy_account__accountPublicId__workspace__workspacePublicId__remove-user__userPublicId"
期望的输出: "TenancyAccountAccountPublicIdWorkspaceWorkspacePublicIdRemove-userUserPublicId"
规则:
- 将任何字符替换为零个或多个下划线以非下划线大写字母表示。
例如:
x | __*x => X
- 如果存在,则删除最后一个下划线。
const convertBetterString = (input) => {
const finalString = [];
if (input && input.includes('_')) {
const inputStringSeparation = input.split('_');
if (inputStringSeparation.length > 1) {
if (inputStringSeparation[inputStringSeparation.length - 1] === '') {
inputStringSeparation.splice(inputStringSeparation.length - 1, 1);
}
inputStringSeparation.forEach((val, index) => {
if (val === '' && inputStringSeparation[index + 1]) {
const actualString = inputStringSeparation[index + 1];
const formattedString = actualString.charAt(0).toUpperCase() + actualString.slice(1);
finalString.push(formattedString);
}
});
return finalString.length > 0 ? finalString.join('') : inputStringSeparation.join('');
} else {
return input.charAt(0).toUpperCase() + input.slice(1);
}
} else {
return input;
}
}
s.replaceAll('__', '_').split('_').map(str => str.charAt(0).toUpperCase() + str.slice(1)).join('')
- A1exandr Belan