简体   繁体   English

如何在camelCase PascalCase snake_case kebab-case (JS) 之间进行转换

[英]How to convert between camelCase PascalCase snake_case kebab-case (JS)

也许有人会发现它很有用 - 如何在 camelCase PascalCase snake_case kebab-case (JS) 之间进行转换

'use strict'

const log = console.log.bind(console);

const toCamel = val => val.trim().replace(/([-_ ]+)./g, $ => $.at(-1).toUpperCase());
const toKebab = val => toCamel(val).replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, o) => (o ? "-" : "") + $.toLowerCase())
const toSnake = val => toCamel(val).replace(/[A-Z]+(?![a-z])|[A-Z]/g, ($, o) => (o ? "_" : "") + $.toLowerCase())
const toPascal = val => toCamel(val).replace(/^./, $ => $.toUpperCase());

const testCase = [
    'StackOverflow',
    'camelCase',
    'alllowercase',
    'JSONdata',
    '         aaa--------bbb-ccc',
    'aaa_______bbb__ccc_dddddddddd',
    'aaa          bbb -ccc',
    'ddd-eee-fff',
];

log(testCase.map(toCamel));

You can use lodash package.您可以使用 lodash 包。

      _.kebabCase('Foo Bar');
    // => 'foo-bar'

    _.snakeCase('Foo Bar');
    // => 'foo_bar'


 startCase(camelCase(str)).replace(/ /g, '');

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM