我需要編寫一個函數來接收一個句子字符串和一個真/假'喊'參數。它應該返回字符串,用驚歎號替換任何問號,反之亦然。如果'喊'是真的,所有的字母應該是大寫的。用感嘆號代替問號
function changeIntonation(str, isShouting) {
let myString = '';
let regExcl = /\!/;
let regQmark = /\?/;
let qMarkStr = str.replace(regQmark, '!');
let finalStr = qMarkStr.replace(regExcl, '?');
let newArr = finalStr.split('');
if(isShouting === true) {
let upperCaseArr = newArr.map(function(char){
return char.toUpperCase();
})
myString = upperCaseArr.join('');
}
return myString;
}
我的代碼工作時,我嘗試轉換嘿!你好嗎?到嘿,你好嗎?,但是當我測試嘿?你好嗎!它只是使大寫,感嘆號和問號保持不變。 也!?到?!失敗。 任何想法?謝謝。
想想在失敗的例子中運行代碼時,設置了什麼'qMarkStr'。 – Phylogenesis
您正在將問題轉換爲解釋,然後再回到問題的解釋......您正在改變它,然後您馬上就改變它。你需要一點邏輯來完成這個轉換。 – brso05
如果它已被替換,請不要再替換它... – brso05