转换"句子案例" to" camelCase"在JavaScript中

时间:2014-07-23 16:34:07

标签: javascript regex

很难找到解决方案,反过来有几种解决方案。

我考虑用自己的大写版本替换每个“”和后面的第一个字符:

value.toLowerCase().replace(/\s+/g, function (g) { return g[1].toUpperCase() })

只有正则表达式 / \ s + / g 需要更改以匹配第一个字符。

如果存在这样的问题,请提供链接,我将自行关闭。我找不到SO的解决方案


示例:

“我遛狗去公园”或“我把我的狗带到公园”=> “iWa​​lkMyDogToThePark”

6 个答案:

答案 0 :(得分:6)

你需要抓住下一个角色。您可以使用(。)或([a-z])

var toCamelCase = function(string){
  return string.replace(/\s+(.)/g, function (match, group) { 
    return group.toUpperCase()  
  })
}

答案 1 :(得分:3)

也许你可以用这个:

function camelCase(value) { 
    return value.toLowerCase().replace(/\s+(.)/g, function(match, group1) {
        return group1.toUpperCase();
    });
}

(摘自here

答案 2 :(得分:0)

你在寻找这样的东西:

var string = "Hello there what are You doing yes";
string.replace(/([A-Z])([a-z]+)\s+([a-z])([a-z]+)/g, function($1, $2, $3, $4, $5) { 
    return $2.toLowerCase() + $3 + $4.toUpperCase() + $5; 
});

打印出"helloThere what are youDoing yes"

答案 3 :(得分:0)

您可以使用此驼峰转换代码:

function toCamelCase(str) {
  return str.replace(/(?:^.|[A-Z]|\b.)/g, function(letter, index) {
    return index == 0 ? letter.toLowerCase() : letter.toUpperCase();
  }).replace(/\s+/g, '');
}

var val = toCamelCase("Sentence case");
//=> sentenceCase

val = toCamelCase('hello how are you');
//=> helloHowAreYou

答案 4 :(得分:0)

我认为没有Regex就可以实现更简单的解决方案。只需从空格中拆分字符串,然后将它们与适当的套管连接起来。

var value = '...';

var camelCase = value.split(' ').map(function(word, i) {
    return (word[0] || '')[i == 0 ? 'toLowerCase' : 'toUpperCase']() +
           word.substr(1).toLowerCase();
}).join('');

<强> JSFiddle

答案 5 :(得分:0)

我最终做了以下(ES6):

function camelCase (str) {
    return str.split(/[^a-zA-Z0-9]/g).map((x, index) => {
        if (index === 0) return x.toLowerCase()
        return x.substr(0, 1).toUpperCase() + x.substr(1).toLowerCase()
    }).join('')
}

假设一般情况下,转换为驼峰式大小写的目的是针对变量,因此不应存在重音或奇数字符(或将被拆分)。

camelCase("I walk my dog to the park")
> "iWalkMyDogToThePark"