同时循环检查字符串中的大写字母
While loop checking for capital letters in string
>我有一个函数,可以检查给定字符是否为大写字母并返回假值的真:
function isUpperCase(aCharacter)
{
return (aCharacter >= 'A') && (aCharacter <= 'Z');
}
现在我有一串字符,例如 ThksAbcdEvat
.
我想编写一个函数来检查字符串中的每个字符,当它遇到大写字母时,将执行函数decryptW
但仅在字母块上执行,直到下一个大写字母。
函数解密W在单个单词上工作正常。因此,我正在寻找的是执行函数"decryptW"对"Thks"Abcd"Evat",并返回 3 个单词。我现在所拥有的只是:
function decryptMessage(cipherText, indexCharacter, plainAlphabet, cipherAlphabet)
{
for (var count = 0, count < cipherText.length; count++)
{
while (isUpperCase(cipherText.charAt(count))
{
if (count - lastCapital > 1)
{
decryptWord(cipherText, indexCharacter, plainAlphabet, cipherAlphabet);
lastCapital = count;
}
}
}
}
你能告诉我我是否接近我想要实现的目标吗?任何帮助将不胜感激。
可能正则表达式可以帮助你
var re = /[A-Z][a-z]*/;
var s = 'ThksAbcdEvat';
s.replace(re, function(c){
//do something with c
return c;
});
对于您所描述的内容(如果我理解正确),使用 String.replace/split
将完成在其大写字母上拆分字符串的工作:
'ThksAbcdEvat'.replace(/(.(?=[A-Z]))/g,'$1,').split(',');
//=> Thks,Abcd,Evat
其中/(.(?=[A-Z]))/g
的意思是:找到任何字符,后跟大写的A到Z,替换('$1,'
)的意思是:在找到的字符上添加一个'","'(逗号)。
之后,您可以运行一个循环将decryptWord
应用于数组中的每个单词(/g
表示:全局,即对整个字符串执行此操作)。因此,您的整个decryptMessage
函数可能如下所示:
function decryptMessage(cipherText /*,... other params*/ ){
var captalWords = cipherText.replace(/(.(?=[A-Z]))/g,'$1,').split(',');
for (var i=0;i<capitalWords.length;i++){
decryptWord(captalWords[i] /*,... other params*/ );
}
}
我想说的是,这里不需要复杂的循环等。
相关文章:
- 正好包含2个大写字母和3个数字的正则表达式
- 创建时选择Nav大写字母
- 带有大写字母的棱角分明的光滑属性
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 有没有一个函数会忽略javascript中的大写字母
- Javascript:在字符串中,替换大写字母及其后面的所有字母
- 返回每个单词的第一个字母大写的字符串时出现Javascript错误
- 如何创建一个在字符串中查找大写字母并添加空格的函数
- 使用 jQuery 在大写字母中制作特定的单词(字符串)
- JavaScript使用Regex按大写字母拆分字符串,除非在一起
- 在IE7中,字符串的第一个大写字母发生了断裂
- 如何获取仅包含存在于任何字符和空格之间的大写字母的字符串
- 从最后一个大写字母开始剪字符串直到结尾
- 正则表达式查找至少有一个大写字母的子字符串
- 使用javascript确保给定的单词(字符串)都是大写字母
- 如何忽略字符串索引中的空格,并在句子中的每个单词上以大写字母开头
- 如何使用JavaScript使字符串以大写字母开头
- 程序检查字符串中的大写字母
- 同时循环检查字符串中的大写字母
- 如何替换字符串的大写字母(和单词的其余部分)