12

我有 JavaScript 数组,其中存储字符串变量。我尝试了下面的代码来帮助我将 Javascript 变量转换为大写字母,

<html>
<body>

    <p id="demo"></p>

    <button onclick="toUppar()">Click Here</button>

    <script>
    Array.prototype.myUcase=function()
    {
        for (i=0;i<this.length;i++)
          {
          this[i]=this[i].toUpperCase();
          }
    }

    function toUppar()
    {
        var numArray = ["one", "two", "three", "four"];
        numArray.myUcase();
        var x=document.getElementById("demo");
        x.innerHTML=numArray;
    }
    </script>

</body>
</html>

但我只想将 Javascript 变量的第一个字符转换为大写。

期望的输出:One,Two,Three,Four

4

4 回答 4

5

如果您需要大写字母来展示您的视图,您可以简单地使用 css 来实现!

div.capitalize:first-letter {
  text-transform: capitalize;
}

这是完整的小提琴示例:http: //jsfiddle.net/wV33P/1/

于 2013-08-31T09:36:02.000 回答
4

使用这个扩展(根据之前的 SO-answer):

String.prototype.first2Upper = String.prototype.first2Upper || function(){
 return this.charAt(0).toUpperCase()+this.slice(1);
}
//usage
'somestring'.first2Upper(); //=> Somestring

对于与此扩展结合使用的阵列map,将是:

var numArray = ["one", "two", "three", "four"]
               .map(function(elem){return elem.first2Upper();});
// numArray now: ["One", "Two", "Three", "Four"]

map有关该方法的说明和 shim,请参见 MDN

于 2013-08-31T09:17:30.067 回答
2

你快到了。而不是大写整个字符串,只大写第一个字符。

Array.prototype.myUcase = function()
{
    for (var i = 0, len = this.length; i < len; i += 1)
    {
          this[i] = this[i][0].toUpperCase() + this[i].slice(1);
    }
    return this;
}

var A = ["one", "two", "three", "four"]
console.log(A.myUcase())

输出

[ 'One', 'Two', 'Three', 'Four' ]
于 2013-08-31T09:53:43.660 回答
2
Array.prototype.ucfirst = function () {

    for (var len = this.length, i = 0; i < len; i++) {

        if (Object.prototype.toString.call(this[i]) === "[object String]") {
            this[i] = (function () {
                return this.replace(
                    /\b([a-z])[a-z]*/ig,
                    function (fullmatch, sub1) {
                        return sub1.toUpperCase() + fullmatch.slice(1).toLowerCase();
                    }
                );
            }).call(this[i]);
        }

    }
    return this;
};

console.log(["conVertInG", "fIRST", "ChaRcteR", "OF", new Array, String, new String("string tO UPPER CASE [duPLicatE]")].ucfirst());
//
// ["Converting", "First", "Charcter", "Of", [], String(), "String To Upper Case [Duplicate]"]
//
于 2013-08-31T09:54:42.240 回答