我需要将某个字符串中的所有小写字符转换为大写,并将所有大写转换为小写。
例如
var testString = 'heLLoWorld';
应该
'HEllOwORLD'
转换后。
什么是最优雅的实现方式,而不保存临时字符串。
如果使用正则表达式实现这样的结果,我会更好。
谢谢。
我需要将某个字符串中的所有小写字符转换为大写,并将所有大写转换为小写。
例如
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();
}
}
testString.split('').map(function(c) {
var f = 'toUpperCase';
if(c === c.toUpperCase()) {f = 'toLowerCase';}
return c[f]();
}).join('');