混合模式下的javascript.tolowercase/.touppercase

Javascript .toLowerCase/.toUpperCase in mixed mode

我试着编写一些函数代码。我想每两个字母都改一次。我让它与str.char[0].toUpperCase一起工作,但是必须手工处理整个字符数(char[0],char[1],char[2])等等。

有人能帮我用一个数组来转换一个给定的字符串吗?teststring至:teststring

我的问题是建立一个数组,它获取给定字符串的每一个第二个字母,并将其更改为.toUpperCase


你可以用这个淫秽的regex:

1
2
3
4
5
6
7
var str = 'teststring';

str = str.replace(/(.)(.)/g, function(_,a,b){
  return a + b.toUpperCase();
});

console.log(str); //=> tEsTsTrInG


怎么样

1
2
3
4
5
6
7
8
9
10
// Returns string
function fancyString(arg){
    var ret, low, upp, i;
    low = arg.toLowerCase();
    upp = arg.toUpperCase();
    for(i=0,ret="";i<arg.length;i++){
        ret += (i%2)===0 ? low[i] : upp[i];
    }
    return ret;
};


看到这个:

1
2
3
4
5
6
7
8
9
function convert(str)
{
    str = str.split('');
    for(var i=0, len=str.length;i<len;i++)
    {
       if(i%2)str[i] = str[i].toUpperCase();
    }
    return str.join('');
}

http://jsfiddle.net/rooseve/sf3pr/


您可以将JS字符串看作类似"数组"的结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
function toCamelCase(string){
  // if passed a null string
  if(!string){
    return '';
  }
  var newString = '';
  for( var c = 0; c < string.length; c++){

    newString += c % 2 ? string[c].toLowerCase() : string[c].toUpperCase();

  }
  return newString;
}