我需要编写一个函数来接收一个句子字符串和一个真/假'喊'参数。它应该返回字符串,用惊叹号替换任何问号,反之亦然。如果'喊'是真的,所有的字母应该是大写的。用感叹号代替问号
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