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

Capitalize words without built-in JavaScript methods

我想将字符串中的单词大写,例如...

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.

搜索了一个空白数组

请不要推荐使用 CSS 属性,例如 text-transform:uppercase。这些我都知道。我只想 JavaScript.

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)

还有fiddle播放: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)