如何手动转换为大写?(Javascript)

耶稣麦克

我正在尝试编写一个函数,它在没有 toUpperCase() 内置函数示例(“hello”)的情况下将字符串值返回为大写;返回“你好”

没有这个:

var x="hello"
var y=x.toUpperCase();
极客先生

这是一个执行此操作的函数(非常老式和手动):

  • 遍历字符串
  • 如果遇到小写字符,换句话说,如果您所在的字符的 ASCII 码在 [97,122] 范围内,这是小写字母字符的范围,从它的 ASCII 码中减去 32,因为差异ASCII 中的小写 alpha-char 和大写形式之间是 32,然后将其添加到新字符串中。
  • 否则,按原样添加字符。


正如德国人@georg(德语字母包括重音字母)所指出的那样,我添加了一个更新以包含它们。
它们的范围是 [224,255],并且每个和它的大写形式之间的差异也是 32,因此,不需要 else if :

function myToUpperCase(str) {
  var newStr = '';
  for (var i=0;i<str.length;i++) {
    var thisCharCode = str[i].charCodeAt(0);
    if ((thisCharCode>=97 && thisCharCode<=122)||(thisCharCode>=224 && thisCharCode<=255)) {
    	newStr += String.fromCharCode(thisCharCode - 32);
    } else {
    	newStr += str[i];
    }
  }
  return newStr;
}
console.log(myToUpperCase('helLo woRld!')); // => HELLO WORLD!
console.log(myToUpperCase('üñïçødê')); // => ÜÑÏÇØDÊ

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章