为什么不跑?(把每个单词的第一个字母大写)

时间:2014-11-18 14:04:41

标签: javascript

此代码有什么问题?   我想要大写每个单词的第一个字母

function capitalizeEachWord(str)
{
   var words = str.split(" ");
   var arr = Array();
   for (i in words)
   {
      temp = words[i].toLowerCase();
      temp = temp.charAt(0).toUpperCase() + temp.substring(1);
      arr.push(temp);
   }
   return arr.join(" ");
      var first=document.getElementById(textbox1).value;
       document.getElementById("resualt").innerHTML=arr; 
     }

3 个答案:

答案 0 :(得分:0)

如果ID resualt正确,请尝试此操作。我已经设置了小提琴手进行测试。

 document.getElementById("resualt").innerHTML = str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});

Demo

答案 1 :(得分:0)

您在更新元素之前从函数返回。

function capitalizeEachWord(str)
{
   var words = str.split(" ");
   var arr = Array();
   for (i in words)
   {
      temp = words[i].toLowerCase();
      temp = temp.charAt(0).toUpperCase() + temp.substring(1);
      arr.push(temp);
   }
   return arr.join(" "); // From now on, it's dead code.
   var first=document.getElementById(textbox1).value;
   document.getElementById("resualt").innerHTML=arr; 
}

尝试这样做:

function capitalizeEachWord(str)
{
   var words = str.split(" ");
   var arr = Array();
   for (i in words)
   {
      temp = words[i].toLowerCase();
      temp = temp.charAt(0).toUpperCase() + temp.substring(1);
      arr.push(temp);
   }
   var strCapitalized = arr.join(" "); // Store it in a variable
   var first=document.getElementById(textbox1).value;
   document.getElementById("resualt").innerHTML = strCapitalized; // Use the variable
}

答案 2 :(得分:0)

通过使用jQuery,您可以执行此操作,如下所示:

演示:https://jsfiddle.net/cxow8198/3/

<input type="text" id="input">

<script>
//usage
$("input").keyup(function() {
   toUpper(this);
});

//function
function toUpper(obj) {
    var mystring = obj.value;
    var sp = mystring.split(' ');
    var wl=0;
    var f ,r;
    var word = new Array();
    for (i = 0 ; i < sp.length ; i ++ ) {
        f = sp[i].substring(0,1).toUpperCase();
        r = sp[i].substring(1).toLowerCase();
        word[i] = f+r;
    }
    newstring = word.join(' ');
    obj.value = newstring;
    return true;   
}
</script>

查询代码段以生成字符串中每个单词的第一个字母的大写字母。这可用于防止用户在将数据输入表单时输入标题或文本的全部大写。希望这会有所帮助...