function onlyCapitalLetters (str)
{
let newStr = "";
for (let i = 0; i < str.length; i ++) {
if (str[i].includes("ABCDEFGHIJKLMNOPQRSTUVWXYZ")) {
newStr += str[i];
}
}
return newStr;
}
onlyCapitalLetters("AMazing"); // should get AM
嗨,我正在写一个函数,它将返回一个只有大写字母的新字符串。当我尝试运行这个函数时,我看不到任何输出。请帮忙!!!
在实践中,您可能会在这里使用regex方法:
function onlyCapitalLetters (str) {
return str.replace(/[^A-Z]+/g, "");
}
console.log(onlyCapitalLetters("AMazing")); // should get AM
Include要求中的所有内容都包含在所提供的字符串中。使用正则表达式代替
function onlyCapitalLetters (str) {
let newStr = "";
for (let i = 0; i < str.length; i++) {
if (str[i].match(/[A-Z]/)) {
newStr += str[i];
}
}
return newStr;
}
console.log(onlyCapitalLetters("AMazing")); // should get AM
你可以像一样把这个功能排成一行
const capital = (str) => str.split('').filter(a => a.match(/[A-Z]/)).join('')
console.log(capital("AMazinG"))
字母串(uppercaseLetters
(应该包括当前字母(str[i]
(,而不是相反:
function onlyCapitalLetters(str) {
let newStr = "";
const uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
for (let i = 0; i < str.length; i++) {
if (uppercaseLetters.includes(str[i])) {
newStr += str[i];
}
}
return newStr;
}
console.log(onlyCapitalLetters("AMazing")); // should get AM
更好的选择是使用String.match()
来查找所有大写字母。match方法返回一个找到的字母数组,如果没有找到,则返回null
,因此我们需要使用一个空数组作为后备。使用空字符串连接生成的数组。
function onlyCapitalLetters(str) {
return (str.match(/[A-Z]/g) || []).join('');
}
console.log(onlyCapitalLetters("AMazing")); // should get AM
String.Includes((检查字符串中的所有字符
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes
您也可以使用ASCII码来验证字符是否为大写字母。
function onlyCapitalLetters (str) {
let newStr = "";
for (let i = 0; i < str.length; i++) {
if (str[i].charCodeAt(0) >= 65 && str[i].charCodeAt(0) <= 90) {
newStr += str[i];
}
}
return newStr;
}
console.log(onlyCapitalLetters("AMazing"));