首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Camelcase在Javascript中使用split( )两次

Camelcase在Javascript中使用split( )两次
EN

Stack Overflow用户
提问于 2012-12-14 10:39:58
回答 2查看 752关注 0票数 0

我正在尝试创建一个函数,将一个句子拆分成单词,然后将单词拆分成字符,并将每个单词的第一个字母大写。是的,这是家庭作业,经过多次尝试,我都不能让它正常工作。有一件事让我很头疼,那就是两次使用split()。

代码语言:javascript
复制
<!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>
EN

回答 2

Stack Overflow用户

发布于 2012-12-14 10:55:50

你很接近了:

代码语言:javascript
复制
> characterArray[0].toUpperCase();

返回一个值,它不会就地修改它

代码语言:javascript
复制
> wordArray[i]=characterArray.join;

join是一个方法,你必须调用它。而且,它返回一个值,它不会修改任何内容。您可能会考虑改用子字符串,但是使用数组时,您将拥有:

代码语言:javascript
复制
var firstChar = characterArray.shift().toUpperCase();
var newWord = firstChar + characterArray.join('');

应该能行得通。

票数 3
EN

Stack Overflow用户

发布于 2012-12-14 11:07:38

将公共元素分解成可理解的代码片段:

代码语言:javascript
复制
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);
}

现在您可以将句子转换为大写。在转换句子之前去掉句子中的标点符号可能是个好主意。这里有几个例子:

代码语言:javascript
复制
alert(toCamelCase("java script")); // javaScript
alert(toCamelCase("json to XML")); // jsonToXML
alert(toCamelCase("ECMA script")); // ECMAScript

最后一个看起来是PascalCase,但仍然被认为是有效的camelCase。你可以在这里看到演示:http://jsfiddle.net/GhKmf/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13871884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档