【问题标题】:Javascript .toLowerCase/.toUpperCase in mixed modeJavascript .toLowerCase/.toUpperCase 混合模式
【发布时间】:2013-12-19 09:05:41
【问题描述】:
我尝试编写一些函数。我想更改每个第二个字母.toUpperCase。我让它与str.char[0].toUpperCase一起工作,但必须手动处理整个字符数(char[0],char[1],char[2])等等。
有人可以帮我解决一个数组,它可以像这样转换给定的字符串:
teststring 至:tEsTsTrInG。
我的问题是构建一个数组,它获取给定字符串的每个第二个字母并更改它.toUpperCase。
【问题讨论】:
标签:
javascript
mode
uppercase
lowercase
mixed
【解决方案1】:
怎么样
// 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;
};
【解决方案2】:
看这个:
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/
【解决方案3】:
您可以将 JS 字符串视为类似“数组”的结构:
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;
}
【解决方案4】:
你可以用这个淫秽的正则表达式来做到这一点:
var str = 'teststring';
str = str.replace(/(.)(.)/g, function(_,a,b){
return a + b.toUpperCase();
});
console.log(str); //=> tEsTsTrInG