只从字符串中提取大写字母-javascript


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"));

相关内容

  • 没有找到相关文章

最新更新