程序检查字符串中的大写字母
program checking string of characters for capital letters
好的,我有一个函数,它检查字母是否为大写,并返回'true'或'false'值。
function isUpperCase(aCharacter) {
return (aCharacter >= 'A') && (aCharacter <= 'Z');
}
现在我希望它检查一个字符串,例如"AdfdfZklfksPaabcWsgdf",在程序遇到大写字母后,它将对这个字母之后的所有小写字母执行函数decryptWord,直到下一个大写字母为止,以此类推;(
function decryptMessage(cipherText, indexCharacter, plainAlphabet, cipherAlphabet) {
for (var count = 0, count < cipherText.length; count++) {
if (isUpperCase(cipherText.charAt(count))) {
decryptWord(cipherText, indexCharacter, plainAlphabet, cipherAlphabet)
} else {
//i dont know what to do next
}
}
}
你能告诉我我的方向是否正确吗?
您是否考虑过在每个大写字符之前进行拆分的regex?例如
"AdfdfZklfksPaabcWsgdf".split(/(?=[A-Z])/);
结果:
["Adfdf", "Zklfks", "Paabc", "Wsgdf"]
通过这种方式,您可以一次管理一个"单词";每个字符的第一个字符总是大写,其余的都是小写。
isUpperCase
函数为空格字符返回false
,因此代码对空格字符和小写字符一视同仁。这可能就是为什么它对多个单词而不是单个单词感到恶心的原因。
与其处理大写和小写字母,为什么不将split
作为非单词字符的输入呢?类似这样的东西:
var words = cipherText.split(/'W/), // 'W means non-word characters
numWords = words.length;
for (var i = 0; i < numWords; i++) {
decryptWord(words[i]);
}
我建议在decryptMessage
函数中使用两个变量。第一个变量last_caps
将存储前一个大写字母的索引。第二个变量是count
,它的工作方式与现有的非常相似。这可以让您知道上一个大写字母在哪里,所以当您找到下一个大写时,您可以在它们之间的小写字母上使用decryptWord
。
for循环的迭代
- 如果索引
count
处的字符为大写,则:- 如果
count - last_caps > 1
,则:- 使用
decryptWord
对从last_caps
开始到count
结束的子字符串进行解密。根据需要操作值以包括/排除大写字母
- 使用
- 用
count
覆盖last_caps
。(last_caps = count
)
- 如果
for
迭代结束
在大写字母上拆分的JavaScript函数:
String.prototype.splitForCapitalLetters = function () {
var string = this;
if (string.length) {
string = string.split(/(?=[A-Z])/);
}
return string;
};
呼叫:
"AnyString".splitForCapitalLetters();
结果:
["Any", "String"]
列是字符串数组,并保留完全大小写,如大写或小写
function cipherText(columns) {
for (var i = 0; i < columns.length; i++) {
if (!isAnyCase(columns[i])) {
columns[i] = columns[i].split(/(?=[A-Z])/).join(" ");
}
}
return columns;
}
function isAnyCase(text) {
return (text == text.toUpperCase() || text == text.toLowerCase());
}
调用函数
var columns = cipherText(arr);
相关文章:
- 正好包含2个大写字母和3个数字的正则表达式
- 创建时选择Nav大写字母
- 带有大写字母的棱角分明的光滑属性
- Regex模式,用于检查字符串中每个单词的第一个字母(如果是Javascript中的大写字母)
- 有没有一个函数会忽略javascript中的大写字母
- Javascript:在字符串中,替换大写字母及其后面的所有字母
- 返回每个单词的第一个字母大写的字符串时出现Javascript错误
- 如何创建一个在字符串中查找大写字母并添加空格的函数
- 使用 jQuery 在大写字母中制作特定的单词(字符串)
- JavaScript使用Regex按大写字母拆分字符串,除非在一起
- 在IE7中,字符串的第一个大写字母发生了断裂
- 如何获取仅包含存在于任何字符和空格之间的大写字母的字符串
- 从最后一个大写字母开始剪字符串直到结尾
- 正则表达式查找至少有一个大写字母的子字符串
- 使用javascript确保给定的单词(字符串)都是大写字母
- 如何忽略字符串索引中的空格,并在句子中的每个单词上以大写字母开头
- 如何使用JavaScript使字符串以大写字母开头
- 程序检查字符串中的大写字母
- 同时循环检查字符串中的大写字母
- 如何替换字符串的大写字母(和单词的其余部分)