【问题标题】:Javascript: How can I determine which characters in a string of text are capital letters? [duplicate]Javascript:如何确定文本字符串中的哪些字符是大写字母? [复制]
【发布时间】:2014-07-12 07:34:33
【问题描述】:

关于可能重复的问题的说明

该问题的公认答案无效。

它错误地将空格和其他非字母字符报告为 toUpperCase==true。 :-(

但我现在看到,其他答案之一确实提供了一个成功的解决方案。上一个问题的正确答案来自 ciembor。我会留下这个问题,因为 Barmar 接受的这个答案正确地解决了这个问题。

如何确定文本字符串中的哪些字符是大写字母?

我的第一次尝试是使用 .toUpperCase 进行测试,但非字母字符也返回 true:

var text="Romeo & Juliet";

var characters=text.split('');

// and test with 

characters[i]===characters[i].toUpperCase()   // but spaces and "&" also test as true

接下来我会使用正则表达式并使用A-Z 进行测试,但非英文字符集的大写字母可能超出此范围。

谁有办法判断一个字符是否是大写字母?

【问题讨论】:

  • 嗯,有this answer 但是我不认为 JavaScript (ES5) 支持 unicode 表达式。见stackoverflow.com/questions/280712/javascript-unicode-regexes
  • 仅供参考,您无需拆分字符串即可访问每个字符。字符串支持类数组访问
  • @Se0ng11。感谢您提及该问题。该问题的公认答案无法正确测试空格、& 符号等。但我现在看到其他答案之一确实提供了成功的解决方案。我会留下这个问题,因为 Barmar 接受的答案正确地解决了这个问题。再次...谢谢!

标签: javascript fonts


【解决方案1】:

试试这个:

function isUpperCase(c) {
    return c == c.toUpperCase() && c != c.toLowerCase();
}

【讨论】:

  • 当然——使用 !=c.toLowerCase 消除误报。谢谢...这正是我所需要的。
猜你喜欢
  • 2021-12-17
  • 2019-04-28
  • 2011-08-18
  • 2013-06-11
  • 1970-01-01
  • 2019-08-27
  • 2011-12-11
  • 2018-02-03
相关资源
最近更新 更多