【问题标题】:.toLowerCase not working, replacement function?.toLowerCase 不起作用,替换功能?
【发布时间】:2012-09-18 15:53:34
【问题描述】:

当我尝试在数字上使用 .toLowerCase 方法时出现错误。这就是我所拥有的:

var ans = 334;
var temp = ans.toLowerCase();
alert(temp);

然后它给了我这个错误:

'undefined' is not a function (evaluating 'ans.toLowerCase()')

我不知道我哪里弄错了。我一直认为数字也可以被解析,结果没有变化(也许这就是我塞进去的地方)。

但如果这不是错误,有人可以编写一个自定义的 makeLowerCase 函数,以使字符串小写,也许使用正则表达式或其他东西?

【问题讨论】:

  • 您希望小写数字是什么样的?
  • @JamesAllardice 我希望该函数只返回我给它的值,如果它是一个数值。
  • @詹姆斯。 334

标签: javascript string lowercase


【解决方案1】:

.toLowerCase() 函数只存在于字符串上。

您可以在 JavaScript 中对任何内容调用 .toString() 以获取字符串表示形式。

把这一切放在一起:

var ans = 334;
var temp = ans.toString().toLowerCase();
alert(temp);

【讨论】:

  • 有没有办法让ans 保留其类型,而不是转换成字符串?
  • 嗯...你到底为什么要小写呢???无论如何,当所有这些代码都运行时,ans 仍然是一个数字。 .toString() 不会修改原始值(即您不会将其存储回ans
  • @think123 我建议您加强对不同 javascript 类型的理解,并将字符串保留为字符串,将数字保留为数字。没有必要对变量的类型感到困惑。 ans 的价值究竟从何而来?为什么ans 的类型未知?
  • @think123 试试看:if(typeof ans == 'string') ans = ans.toLowerCase();
  • 无法读取未定义的属性“toString”。我认为我们必须检查类型,然后按照 Gogol 所述执行此操作。
【解决方案2】:

数字继承自 Number 构造函数,该构造函数没有 .toLowerCase 方法。其实你可以查一下:

"toLowerCase" in Number.prototype; // false

【讨论】:

    【解决方案3】:

    这不是错误。当需要字符串时,Javascript 会很乐意将数字转换为字符串(例如 parseInt(42)),但在这种情况下,没有任何东西期望数字是字符串。

    这是一个makeLowerCase 函数。 :)

    function makeLowerCase(value) {
      return value.toString().toLowerCase();
    }
    

    【讨论】:

      【解决方案4】:
      var ans = 334 + '';
      var temp = ans.toLowerCase();
      alert(temp);
      

      【讨论】:

        【解决方案5】:

        它是一个数字,而不是一个字符串。数字没有toLowerCase() 函数,因为数字首先没有大小写。

        要使函数无错误运行,请在字符串上运行它。

        var ans = "334";
        

        当然,输出将与输入相同,因为如上所述,数字首先没有大小写。

        【讨论】:

          【解决方案6】:
          const myvar = 222;
          const tempVar = myvar.toString().toLowerCase();
          alert(tempVar);
          

          请使用以下代码,因为 toLowerCase(); 应用于字符串,所以首先需要使用 toString() 方法将其转换为字符串

          【讨论】:

            【解决方案7】:

            你也可以用这个。

            function strtolower(value){
            
             return ("" +  value).toLowerCase();
            }
            
            var ans=strtolower( 334); 
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2016-02-27
              • 1970-01-01
              • 2020-10-09
              • 2021-07-04
              • 2015-08-22
              • 1970-01-01
              相关资源
              最近更新 更多