将大写字符转换为小写字符,将小写字符转换为大写字符(反之亦然)



我需要在某个字符串中将所有小写字符转换为大写字符,将所有大写字符转换为小写字符。

例如

var testString = 'heLLoWorld';

应该是

'HEllOwORLD' 

转换后。

在不保存临时字符串的情况下,实现这一点最简单的方法是什么。

如果使用正则表达式实现这样的结果,我会做得更好。

谢谢。

这里有一个正则表达式解决方案,它利用了大小写字母在小数点32:对应的位上的差异这一事实

var testString = 'heLLo World 123',
    output;
output= testString.replace(/([a-zA-Z])/g, function(a) {
          return String.fromCharCode(a.charCodeAt() ^ 32);
        })
  
document.body.innerHTML= output;

这里有一个想法:

function flipCase(str) {
  return str.split('').reduce(function(str, char) {
    return str + (char.toLowerCase() === char
      ? char.toUpperCase()
      : char.toLowerCase());
  }, '');
}

以下是RegEx 的一个想法

var testString = 'heLLoWorld';
var newString  = '';
for(var i =0; i< testString.length; i++){
    if(/^[A-Z]/.test(testString[i])){
         newString+= testString[i].toLowerCase();
    } else {
         newString+= testString[i].toUpperCase();
    }
}

在这里工作http://jsfiddle.net/39khs/1413/

testString.split('').map(function(c) {
  var f = 'toUpperCase';
  if(c === c.toUpperCase()) {f = 'toLowerCase';}
  return c[f]();
}).join('');

最新更新