我想知道如何不使用函数。我尝试过使用String.fromCharCode
,但我想我做得不对。有什么想法吗?
答案 0 :(得分:5)
如果您想支持英文字母a
到z
以外的任何内容,则将字符从小写字母转换为大写字母并非易事。 Unicode数据库中涉及映射。
所以toUpperCase
是这项工作的正确工具。根据{{3}},它使用Unicode数据库来选择适当的大写字符。 (该链接指向toLowerCase
,因为toUpperCase
只是说它与toLowerCase
做同样的事情,但是对于大写。)
但是,如果您只支持英文字母a
到z
,则这些字母代码由字符代码97到122表示。 A
到Z
由字符代码65到90表示,包括端点。所以:
var upperChar = String.fromCharCode(lowerChar.charCodeAt(0) - 32);
会这样做。但我强烈建议不这样做。
答案 1 :(得分:1)
查看ascii表ASCII。 A = 65 ... a = 97
不要忘记这不是正确的方法,但是如果你需要进行这种级别的编程,这就是方法。这仅适用于ascii(英文字母)。
会有很多弊端,但这是你问题的答案:)。
答案 2 :(得分:1)
'A'的ASCII值为65而'a'为97.它们之间的差值为97 - 65 = 32 因此,如果我们将在'A'的ASCII值中添加32,那么它将是'a',如果我们在'a'的ASCII值中减去32,它将是'A'。所有字母表都是如此。 一般来说:
大写字符=小写字符 - 32
小写字符=大写字符+ 32