在字符串中查找大写字符
Finding uppercase characters within a string
我正在尝试编写一个函数来解密具有大写字母(显示它是一个新单词)和小写字符(这是单词本身)的加密消息。 该函数需要在加密邮件中搜索所有大写字母,然后返回大写字符及其后面的小写字母。 我得到了一个在解密函数中调用的函数:
function isUpperCase(aCharacter)
{
return (aCharacter >= 'A') && (aCharacter <= 'Z');
}
我想我会先在单词中搜索所有大写字符,然后将其分配为新字符串。 然后我可以做 while 循环,它将拾取新字符串中的每个字母,然后在旧字符串中搜索它旁边的小写字符。
但是,我完全停留在第一部分 - 我什至无法计算结构化英语。
代码为:
-
encryptMessage
是包含大写和小写字符的字符串 -
indexCharacter
稍后用于另一个函数 -
upperAlphabet
- 大写字符的字母表 - 稍后使用 -
lowerAlphabet
- 字母小写字符 - 稍后使用
该函数:
function decryptMessage(encryptMessage, indexCharacter, upperAlphabet, lowerAlphabet)
{
var letter
var word = "";
for (var count = 0; count < encryptMessage.length; count = count +1);
{
letter = encryptMessage.charAt(count)
if (isUpperCase(letter));
{
word = word + letter;
}
document.write(word); //this is just to test to see if it returns the uppercase - I would use the return word
}
上面的似乎不起作用,所以我甚至无法继续其余的代码。 谁能帮我确定我哪里出错了 - 无论如何我是否完全走错了方向,回读它我认为这真的没有多大意义?? 这是一个非常基本的代码,我只学习过,因为,而循环 - 如果和否则真的函数,我只是卡住了。
提前感谢您的建议:-)
伊西
我不太确定我是否遵循,但您可以使用替换方法和正则表达式进行
剥离var str = 'MaEfSdsfSsdfsAdfssdGsdfEsdf';
var newmsg = str.replace(/[a-z]/g, '');
var old = str.replace(/[A-Z]/g, '');
在本例中,newmsg = 'MESSAGE'。
检查字符串中大写字符的简单条件是...
var str = 'aBcDeFgHiJkLmN';
var sL = str.length;
var i = 0;
for (; i < sL; i++) {
if (str.charAt(i) === str.charAt(i).toUpperCase()) {
console.log('uppercase:',str.charAt(i));
}
}
/*
uppercase: B
uppercase: D
uppercase: F
uppercase: H
uppercase: J
uppercase: L
uppercase: N
*/
编辑
String input = "ThisIsASecretText";
for(int i = 0; i < input.Length; i++)
{
if(isUpperCase(input.charAt(i))
{
String nextWord = String.Empty;
for(int j = i; j < input.Length && !isUpperCase(input.charAt(j)); j++)
{
nextWord += input.charAt(j);
i++;
}
CallSomeFunctionWithTheNextWord(nextWord);
}
}
将进行以下调用:
- CallSomeFunctionWithTheNextWord("this");
- CallSomeFunctionWithTheNextWord("Is");
- CallSomeFunctionWithTheNextWord("A");
- CallSomeFunctionWithTheNextWord("Secret");
- CallSomeFunctionWithTheNextWord("text");
您可以使用正则表达式用更少的代码做同样的事情,但是由于您说您正在学习一门非常基础的编程课程,因此此解决方案可能更合适。
使用 Unicode 属性转义,特别是与大写匹配的"Lu"常规属性类别。有数字、标点符号、货币以及您可能感兴趣的任何其他类别的字符类别。
在下面的示例中,"u"修饰符启用 Unicode 匹配。
"HeLlo WoRld".match(/'p{Lu}/gu) // [ 'H', 'L', 'W', 'R' ]
我宁愿使用Array.reduce,如下所示:比如说,示例示例 = 'SampleStringAsFollow';
let capWord = [...sample].reduce((caps,char) => (char.match(/[A-Z]/)) ? caps + char : caps,'');
console.log(capWord); //SSAF
capWord 将是一个大写字符的字符串,还将处理字符串中可能包含特殊字符的边界情况。
请使用下面的代码获取句子的第一个大写字母:
演示代码
var str = 'i am a Web developer Student';
var sL = str.length;
var i = 0;
for (; i < sL; i++) {
if (str.charAt(i) != " ") {
if (str.charAt(i) === str.charAt(i).toUpperCase()){
console.log(str.charAt(i));
}
}
}
- 使用RegExp查找url中的字符
- 模仿负查找以匹配JavaScript正则表达式中没有紧跟特定字符的模式
- javascript:查找/替换regexp帮助-粗体、斜体和特定字符
- Regex查找前面没有特定字符的字符
- 在Javascript中查找子字符串,并前置/附加一些字符
- 使用正则表达式查找字符串中的不匹配字符
- 使用正则表达式查找字符模式
- 使用正则表达式在方括号内查找多个字符
- 使用for循环查找字符串中的特定字符
- javascript查找字符串并删除以下所有字符
- 使用javascript查找小数前的整数(不包括特殊字符)
- Java Script Regex-查找脚本中是否只有允许的字符
- Regex以查找除输入的最后n个字符之外的匹配项
- 查找字符&用Javascript制作Capitlise
- 查找上一个<p>在第n个字符之后
- 在javascript中查找特定单词(正则表达式)中的字符类型
- 查找字符串中类型的最后一个字符
- 查找字符串中出现的字符数
- 查找模式并仅删除几个字符
- 如何查找输入标签中的字符数