25

我正在尝试编写一个函数,解密一条包含大写字母(显示一个新词)和小写字符(即单词本身)的加密消息。该函数需要在加密消息中搜索所有大写字母,然后返回大写字母及其后的小写字母。我已经在解密函数中获得了一个要调用的函数:

函数为UpperCase(字符){    return(A字符>=“A”)&&(A字符<=“Z”);}

我在想,我会先在单词中搜索所有大写字符,并将其分配为一个新字符串。然后我可以执行while循环,该循环将拾取新字符串中的每个字母,然后在旧字符串中搜索它旁边的小写字符。

然而,我完全被第一部分卡住了——我甚至无法写出结构化的英语。

代码是:

  • 加密消息是包含大小写字符的字符串
  • 索引字符稍后用于另一个函数
  • 大写字母-大写字母表-稍后使用
  • 小写字母-字母小写字符-稍后使用

功能:

函数decryptMessage(encryptMessage,indexCharacter,大写字母,小写字母){var字母var单词=“”;for(var计数=0;计数<加密消息长度;计数=计数+1);{letter=encryptMessage.charAt(计数)if(大写(字母));{ 单词=单词+字母;}document.write(文字)//这只是为了测试它是否返回大写字母-我会使用返回词}

上面的代码似乎不起作用,所以我甚至无法继续剩下的代码。有人能帮我找出哪里出了错吗?我到底是不是完全错了方向,把它读回来了,我觉得这真的没有什么意义??这是一个非常基本的代码,我只学到了,因为,虽然循环-如果和其他函数真的起作用,我只是太过卡住了。

提前感谢您的建议:-)

伊西

6个答案6

重置为默认值
24

我不太确定我是否理解,但可以使用replace方法和正则表达式进行剥离

var str=“MaEfSdsfSsdfsAdfssdGsdfEsdf”;var newmsg=str.replace(/[a-z]/g,'');var old=str.replace(/[A-Z]/g,'');

在本例中,newmsg='MESSAGE'。

1
  • 谢谢你的助手,我所学的代码非常非常基本,for/while循环、if/else、charAt和indexOf-我知道它非常基本,但我就是无法理解。我有完整的Html文档,这会更有意义,但我不能在这里发布它 评论 2011年5月19日8:10
7

检查字符串中大写字符的一个简单条件是。。。

var str=“aBcDeFgHiJkLmN”;var sL=字符串长度;var i=0;对于(;i<sL;i++){if(str.charAt(i)===str.charAt(i).toUpperCase()){console.log('大写:',str.charAt(i));}}/*大写:B大写:D大写:F大写:H大写:J大写:L大写:N*/
5

编辑

字符串输入=“ThisIsASecretText”;for(int i=0;i<input.Length;i++){if(是UpperCase(input.charAt(i)){String nextWord=String.Empty;for(int j=i;j<input.Length&&!isUpperCase(input.charAt(j));j++){nextWord+=input.charAt(j);i++;}用下一个单词调用某个函数(下一个词);}}

将进行以下通话:

  • 用下一个单词调用某个函数(“此”);
  • 用下一个单词调用某个函数(“Is”);
  • 使用下一个单词调用某些功能(“A”);
  • 使用下一个单词调用某个函数(“机密”);
  • 用下一个单词调用某个函数(“文本”);

您可以用更少的代码使用正则表达式来做同样的事情,但因为您说您正在学习编程的基础课程,所以这个解决方案可能更合适。

5
  • 嗨,谢谢你的帮助。这正是我想做的。基本上,它将搜索第一个大写字符,然后返回它旁边的小写字符-字符串的这一部分将进入另一个函数,该函数将这些字母与另一个字母表进行匹配(我所做的函数的那一部分)。然后它将返回到原始消息,找到下一个大写字符,并返回大写字母和旁边的小写字母,然后进入函数,依此类推。 评论 2011年5月19日8:07
  • 所以如果我有一个消息字符串,比如KlptonPuuvTssi,它会返回Klpton,然后用来调用另一个函数,然后返回Puuv,然后返回Tssi。我正在学习的课程非常基础,我们还没有学过像toLower这样的东西。我们所涵盖的只是for/while循环、charAt、indexOf、if和else:) 评论 2011年5月19日8:09
  • 好吧,现在我知道你想做什么了。我很快就会编辑我的答案。 评论 2011年5月19日8:11
  • 如果这是你想要的,请把我的答案标记为你问题的答案。谢谢!:) 评论 2011年5月19日8:20
  • 您使用的是Length而不是Length,它甚至不是有效的代码。 评论 2018年12月10日22:26
4

使用Unicode属性转义尤其是“鲁”常规属性类别,与大写字母匹配。有数字、标点符号、货币和其他你可能感兴趣的字符类别。

在下面的示例中,“u”修饰符启用Unicode匹配。

“HeLlo WoRld”.match(/\p{Lu}/gu)//['H','L','W','R']
0

我宁愿使用Array.reduce,如下所示:例如,example sample='SampleStringAsFollows';

让capWord=[…sample].reduce((caps,char)=>(char.match(/[A-Z]/))?caps+char:大写字母,“”);console.log(capWord)//SSAF公司

capWord将是一个大写字符字符串,还将处理字符串中可能包含特殊字符的边界情况。

0

请使用以下代码获取句子的第一个大写字母:

演示代码

var str=“我是一名Web开发人员学生”;var sL=字符串长度;var i=0;对于(;i<sL;i++){if(str.charAt(i)!=" ") {if(str.charAt(i)===str.charAt(i).toUpperCase()){console.log(str.charAt(i));}}}

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.