没有内置JavaScript方法的大写单词

时间:2015-09-21 17:26:48

标签: javascript html html5 uppercase

我想在字符串中大写单词,如...

Hello World, New York, First Name

...使用JavaScript。但问题是我不想使用任何内置JavaScript函数,如toUpperCasesplitjoin等。我已经制作了一个示例程序,但卡住了。

var myString = "Hello world!";
var myArray = [];
var out= ""
for (var i=0; i < myString.length; i++){
    myArray.push(myString[i]);
    if(myString[i] == " "){
        continue;
    }
alert(myString[i])
}

这不使用split。我已在array中转换了我的字符串,然后搜索了一个包含continue的空白数组。

请不要建议使用text-transform:uppercase等CSS属性。我知道所有这些。我想用仅限JavaScript 来完成这项工作。

1 个答案:

答案 0 :(得分:0)

var myString = "Hello world!";
var myStringAux = "";

for (var i=0; i < myString.length; i++){
    if(i==0 || myString[i-1] == " ") {
       switch(myString[i]) {
        case "a":
            myStringAux+="A";
            break;
        case "h":
            myStringAux+="H";
            break;
        case "w":
            myStringAux+="W";
            break;
        default:
            myStringAux+= myString[i];
           break; 
           }


    } else {
       myStringAux+=myString[i];

    }



}
myString = myStringAux;
alert(myString)

也适合演奏:https://jsfiddle.net/22xken1e/

您也可以转换为ascii以避免出现问题,但我不知道您是否可以使用此功能

    var myString = "Hello world!";
var myStringAux = "";

for (var i=0; i < myString.length; i++){ 
    if((i==0 || myString[i-1] == " ") && 97<= myString[i].charCodeAt(0) && myString[i].charCodeAt(0) <= 122 ) {
       myStringAux += String.fromCharCode(myString[i].charCodeAt(0) - 32)

    } else {
       myStringAux+=myString[i];

    }

}
alert(myStringAux)