如何在不使用大写的情况下将字母从小写改为大写?

How do I change a letter from lowercase to uppercase without using toUppercase?

本文关键字:情况下      更新时间:2023-09-26

我想知道如何不使用函数。我试过使用String.fromCharCode,但我想我没有做对。什么好主意吗?

如果您想要支持除英文字母az以外的任何字符,则将字符从小写转换为大写是非常重要的。Unicode数据库中包含映射。

所以toUpperCase是适合这项工作的工具。根据规范,它使用Unicode数据库来选择适当的大写字符。(这个链接是指向toLowerCase的,因为toUpperCase只是说它和toLowerCase做同样的事情,但是是大写的。)

但是如果您只支持英文字母az,则这些字母由字符码97到122表示,包括97到122。AZ由字符码65到90表示。所以:

var upperChar = String.fromCharCode(lowerChar.charCodeAt(0) - 32);

会这样做。但是我强烈建议不要这样做

'A'的ASCII值为65而'A'为97。两者之差是97 - 65 = 32所以如果我们在A的ASCII值中加上32那么它就是A如果我们在A的ASCII值中减去32它就是A。对所有字母都是如此。一般规则:

大写字符=小写字符- 32

小写字符=大写字符+ 32

看一下ascii表。A = 65…A = 97

不要忘记这不是正确的方法,但如果你需要进入这个级别的编程,这就是方法。这只适用于ascii(英文字母)。

会有很多的缺点,但这是你的问题的答案:)。