测试大写,为什么toUppercase()是javascript中的字母数字

Testing for uppercase, why is toUppercase() alphanumeric in javascript?

本文关键字:javascript 数字 为什么 toUppercase 测试      更新时间:2023-09-26

如何隔离toUpperCase()以忽略数字住代码

var data = 'LOL';
var data2 = '1 2 3 4';
if(data2 === data2.toUpperCase()) {
  document.write('hey');
}else {
  document.write('nope');
}

都将向文档写入hey !

为什么在javascript是toUppercase()认为数字是大写字母?测试大写但不测试数字的最佳方法是什么?

您可以使用regex匹配来查看字符串是否包含所有大写字母:

  var uppercaseletters = /^[A-Z]+$/;  
  if(data2.match(uppercaseletters)) {  
    document.write('hey');
  }  else {  
    document.write('nope');
  }

为什么?这就是ECMA标准的定义:

设[结果]为String,其中L的每个字符要么是Unicode[大写]相当于S或的对应字符的实际值如果没有对应的Unicode[大写],则为S的对应字符存在 .

(我强调。)

toUpperCase()只被设计为大写字母。如果你要大写一个数字,它将是一个完全不同的字符。所以,如果你想大写"1,2,3",它就会变成"!", @, #",这与"a, b, c"变成"a, b, c"完全不同

还有,我可以补充一下,没有"大写数字"这种东西

同样的概念也适用于toLowerCase()