我想在字符串中大写单词,如...
Hello World, New York, First Name
...使用JavaScript。但问题是我不想使用任何内置JavaScript函数,如toUpperCase
,split
,join
等。我已经制作了一个示例程序,但卡住了。
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 来完成这项工作。
答案 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)