【问题标题】:Capitalize words without built-in JavaScript methods没有内置 JavaScript 方法的单词大写
【发布时间】:2015-09-21 17:26:47
【问题描述】:

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

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 来做这个

【问题讨论】:

  • 我在自己的网站上有一个小工具,用于“标题大小写”任何文本块:dpoisn.com/tools.php。只需查看其来源即可。没关系。
  • 所以你想写"Hello world".replace(/(^| )./g, function(a){return a.toUpperCase()})但更复杂?简而言之:忘记myArray,像你一样迭代每个字符,并检查它是string (i=0)的开头还是前面有空格(myString[i-1]==" ")。如果是这样,请将字符更改为大写。然后将字符附加到out

标签: javascript html uppercase


【解决方案1】:
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)

【讨论】:

  • 它给出 undefined 和 hello world 字符串只是示例
  • 查看编辑。你应该为所有的字母做大小写
  • 你是 MAN Del 伟大的工作伙伴......我会给你喜欢的,但我的声誉很低......谢谢男人
  • 没问题。很高兴为您提供帮助
  • 对不起,但我能再问一个,认为我们不能让这些案例像它变得太大一样进行优化
猜你喜欢
  • 2012-05-28
  • 1970-01-01
  • 2020-02-20
  • 2021-04-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-28
  • 2011-07-07
  • 1970-01-01
相关资源
最近更新 更多