问题:如果一个字符串超过 3 个字符,只返回前 3 个小写字符。如果字符串少于 3 个字符,则返回大写字母的字符串。
我知道这个问题可以用几种方式来解释(a)将前 3 个字符转换为小写,但返回整个句子,(b)识别最初以小写形式书写的前 3 个字符并返回它们。我的解决方案基于选项 (b),但在我的正则表达式中使用“g”修饰符时确实出现了一个问题。如果我在 regExp 变量中写入 /[a-z]/g,那么结果会改变。在下面的示例中,它将返回“iei”而不是“ife”。我不知道为什么。想知道是否有人知道。
function newString(sentence){
let regExp = /[a-z]/;
let newStr = [];
if(sentence.length > 3) {
for(let i = 0; i < sentence.length; i++){
if(regExp.test(sentence[i]) && newStr.length < 3){
newStr.push(sentence[i]);
}
}
return newStr.join("");
} else {
return sentence.toUpperCase();
}
}
console.log(newString("Life is a gift"));