2013-12-03 4 views
0

Я пытаюсь закодировать некоторые функции. Я хочу изменить каждую вторую букву .toUpperCase. Я получаю его для работы с str.char[0].toUpperCase, но он должен сделать это со всеми номерами цифр вручную (char[0],char[1],char[2]) и так далее.Javascript .toLowerCase/.toUpperCase в смешанном режиме

Может ли кто-нибудь помочь мне с массивом, который преобразует заданную строку следующим образом: teststring: tEsTsTrInG.

Моя проблема заключается в построении массива, который берет каждую вторую букву данной строки и изменяет ее .toUpperCase.

ответ

1

Вы можете сделать это с этим непристойным регулярным выражением:

var str = 'teststring'; 

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

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

год СПАСИБО, это именно то, что им нужно! Спасибо! –

0

Вы можете увидеть строку 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; 
} 
+0

THX эта функция работает и для меня! Великий! –

0

Как насчет

// 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; 
}; 
+0

THX работает хорошо! –