我正在尝试创建一个函数,将一个句子拆分成单词,然后将单词拆分成字符,并将每个单词的第一个字母大写。是的,这是家庭作业,经过多次尝试,我都不能让它正常工作。有一件事让我很头疼,那就是两次使用split()。
<!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">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<title>Sentence Case Conversion</title>
<script type= "text/javascript">
/* <![CDATA[ */
/* ]]> */
</script>
</head>
<body>
<form name= "convertText">
<p>Enter text to convert to sentence case:</p>
<input type ="text" size ="120" name="userInput">
</br>
</br>
<input name= "Submit" onclick= "sentenceCase()" value= "Convert Text" type= "button">
</form>
</br>
</br>
</br>
<form name= "ouputText">
<p>Here is your converted text:</p>
<input type="text" size="120" name="result">
<script type= "text/javascript">
/* <![CDATA[ */
function sentenceCase() {
var userInput = document.forms[0].userInput.value; //get user input
var wordArray = userInput.split(" "); //split user input into individual words
for (var i=0; i<wordArray.length; i++) {
var characterArray = wordArray[i].split("");
characterArray[0].toUpperCase();
wordArray[i]=characterArray.join;
}
/* ]]> */
</script>
</body>
</html>发布于 2012-12-14 10:55:50
你很接近了:
> characterArray[0].toUpperCase();返回一个值,它不会就地修改它
> wordArray[i]=characterArray.join;join是一个方法,你必须调用它。而且,它返回一个值,它不会修改任何内容。您可能会考虑改用子字符串,但是使用数组时,您将拥有:
var firstChar = characterArray.shift().toUpperCase();
var newWord = firstChar + characterArray.join('');应该能行得通。
发布于 2012-12-14 11:07:38
将公共元素分解成可理解的代码片段:
function toCamelCase(sentence) {
var words = sentence.split(" ");
var length = words.length;
for (var i = 1; i < length; i++)
words[i] = capitalize(words[i]);
return words.join("");
}
function capitalize(word) {
return word.charAt(0).toUpperCase() + word.slice(1);
}现在您可以将句子转换为大写。在转换句子之前去掉句子中的标点符号可能是个好主意。这里有几个例子:
alert(toCamelCase("java script")); // javaScript
alert(toCamelCase("json to XML")); // jsonToXML
alert(toCamelCase("ECMA script")); // ECMAScript最后一个看起来是PascalCase,但仍然被认为是有效的camelCase。你可以在这里看到演示:http://jsfiddle.net/GhKmf/
https://stackoverflow.com/questions/13871884
复制相似问题