2012-06-16 26 views
3

我有一個字符串,我想用小'i'和每個小'i'替換大寫字母'I'。正如你可以看到,如果我在兩個階段這樣做,它只是轉換它,然後將其轉換回它以前的樣子。那麼我怎麼一次完成這一切?JavaScript - 將兩個字符替換爲對方?

<html> 
<head> 
<script type="text/javascript"> 
function init() { 
    text = document.getElementById('test'); 
    newtext = text.innerHTML.replace(/I/g, "i"); 
    newtext = newtext.replace(/i/g, "I"); 
    text.innerHTML = newtext; 
} 
</script> 
</head> 

<body onload="init()"> 
<div id="test"> 
THIS IS SOME TEST 
</div> 
</body> 
</html> 

回答

7
newtext = text.innerHTML.replace(/[iI]/g, function(l) { 
    return l.toUpperCase() === l ? 
    l.toLowerCase() : l.toUpperCase(); 
}); 
+0

+1,並做了一個小編輯,以便它僅適用於'i'和'I'。 – Paulpro

+0

不應該是'[lL]'? – Dancrumb

+0

@ ascii-lime,哎呀,謝謝! – James

相關問題