【发布时间】:2016-03-25 00:40:40
【问题描述】:
我的程序将字符串中的单词 'before' 替换为单词 'after'。我认为我可能以错误的方式使用 .toUpperCase 和 .toLowerCase 。我可以使用 .toUpperCase 来检查 大写,还是只能使用它来分配 大写?我已经发布了我的短节目。它详细说明了我期望它如何工作,然后是预期结果和实际结果。
// Params are string, word to be removed, new word to replace removed word.
function myReplace(str, before, after) {
var afterCap;
var newString;
// Uppercase first letter of after, add rest of word.
// afterCap is then capitalized after.
afterCap = after[0].toUpperCase() + after.slice(1);
// If before is capitalized,
if (before[0].toUpperCase()) {
// Replace with capitalized after.
newString = str.replace(before, afterCap);
}
// If before not-capitalized,
else if (before[0].toLowerCase()) {
// Replace with lowercase after.
newString = str.replace(before, after);
}
console.log(newString);
}
myReplace("Let us go to the store", "store", "mall");
// Should return "Let us go to the mall"
// Is in fact returning "Let us go to the Mall"
为什么小写的“store”要换成大写的“Mall”?
【问题讨论】:
-
您似乎知道
toUpperCase()返回一个字符串,因为您执行afterCap = after[0].toUpperCase() + after.slice(1);。但是在这里您将其用作测试:if (before[0].toUpperCase())。你觉得toUpperCase在这里返回什么? -
如果你只在
if部分中使用afterCap而不在else中使用,那么在if中赋值,而不是之前。
标签: javascript