[英]Javascript .toLowerCase/.toUpperCase in mixed mode
I try to code some function. 我尝试编写一些功能。 I want to change every 2nd letter
.toUpperCase
. 我想更改每2个字母
.toUpperCase
。 I get it to work with str.char[0].toUpperCase
but have to do it with the whole char numbers manually (char[0],char[1],char[2])
and so on. 我可以将其与
str.char[0].toUpperCase
但必须手动处理整个字符数(char[0],char[1],char[2])
,依此类推。
Can someine help me out with an array which transforms a given string like this: teststring
to: tEsTsTrInG
. 有人可以帮我解决一个数组,该数组将给定的字符串转换为:
teststring
到: tEsTsTrInG
。
My problem is to built an array which takes every second letter of given string and changes it .toUpperCase
. 我的问题是建立一个数组,该数组接受给定字符串的每个第二个字母并将其更改为
.toUpperCase
。
You can do it with this obscene regex: 您可以使用以下淫秽的正则表达式来做到这一点:
var str = 'teststring';
str = str.replace(/(.)(.)/g, function(_,a,b){
return a + b.toUpperCase();
});
console.log(str); //=> tEsTsTrInG
You can see a JS string as an "array" like structure: 您可以将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;
}
See this: 看到这个:
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/ http://jsfiddle.net/rooseve/sf3PR/
How about 怎么样
// 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;
};
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.