编写原型以检查字符串是否为大写

时间:2016-03-19 21:31:43

标签: javascript string uppercase

我正在尝试编写一个字符串原型,用于检查字符串是否全部为大写。这是我到目前为止所做的,我不知道为什么这不起作用。

String.prototype.isUpperCase = function(string) {
  if(string === string.toUpperCase()) {
    return true;
  }else{
    return false;
 }
}

我希望它能像这样工作:

'hello'.isUpperCase() //false
'Hello'.isUpperCase() //false
'HELLO'.isUpperCase() //true

2 个答案:

答案 0 :(得分:3)

prototype方法接收this中的实例,而不是代码似乎期望的第一个参数。试试这个:

String.prototype.isUpperCase = function() {
  return String(this) === this.toUpperCase();
}

String(this)调用确保this是字符串原语而不是字符串对象,不会被===运算符识别为等。

答案 1 :(得分:1)

您正在测试第一个参数(在所有三种情况下都是undefined,因为您没有传递任何参数)而不是字符串本身(它是this,而不是string