首先,我知道这很不专业。我在努力学习如何处理字符串。这个应用程序应该做的就是输入一个简单的文本,然后用它做一些事情:
计数字母,计数大写字母和小写字母,计数单词和计数空格。以下是我所做的:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Case Check</title>
<script type="text/javascript">
function checkCase(text)
{
var counter = 0;
var letters = 0;
var lowercase = 0;
var uppercase = 0;
var spaces = 0;
var words = 0;
for(; counter < text.length; counter++)
{
if(isUpperCase(text.charAt(counter))) {uppercase ++; letters++;}
if(isLowerCase(text.charAt(counter))) {lowercase ++; letters++;}
if((text.charAt(counter) == " ") && (counter < text.length))
{
spaces += 1;
words += 1;
}
if((text.charAt(counter) == ".") || (text.charAt(text(counter)) == ",")) continue;
}
return [letters, lowercase, uppercase, spaces, words];
}
function isUpperCase(character)
{
if(character == character.toUpperCase) return true;
else return false;
}
function isLowerCase(character)
{
if(character == character.toLowerCase) return true;
else return false;
}
</script>
</head>
<body>
<script type="text/javascript">
var typed = prompt("Enter some words.");
var result = checkCase(typed);
document.write("Number of letters: " + result[0] + "br /");
document.write("Number of lowercase letters: " + result[1] + "br /");
document.write("Number of uppercase letters: " + result[2] + "br /");
document.write("Number of spaces: " + result[3] + "br /");
document.write("Number of words: " + result[4] + "br /");
</script>
</body>
根据用户的建议做了几处修改。现在的问题是,它不允许我像对待字符串对象一样对待'text‘。
发布于 2013-10-03 16:33:27
不确定整个问题,但是这个问题很糟糕
if(text.charAt(letters)) == " " && text(letters) < text.length)
^
应该是
if(text.charAt(letters) == " ") && text(letters) < text.length)
^
实际上我会做到的
if((text.charAt(letters) == " ") && (text(letters) < text.length))
发布于 2014-04-18 12:12:14
使用正则表达式。
示例
var s = "thisIsAstring";
var numUpper = s.length - s.replace(/[A-Z]/g, '').length;
// numUpper = 2
JavaScript替换/正则表达式的Se更多信息
发布于 2017-06-11 03:55:21
您可以使用match()和正则表达式。
var str = "aBcD";
var numUpper = (str.match(/[A-Z]/g) || []).length; // 2
https://stackoverflow.com/questions/19171240
复制相似问题