Javascript .toLowerCase 不工作,替换功能?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/12611609/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
.toLowerCase not working, replacement function?
提问by Lucas
The .toLowerCase
method is giving me an error when I try to use it on numbers. This is what I have:
.toLowerCase
当我尝试在数字上使用该方法时,它给了我一个错误。这就是我所拥有的:
var ans = 334;
var temp = ans.toLowerCase();
alert(temp);
And then it gives me this error:
然后它给了我这个错误:
'undefined' is not a function (evaluating 'ans.toLowerCase()')
I don't know where I got this wrong. I always thought that numbers can also be parsed, with no change in result (maybe that's where I stuffed up).
我不知道我哪里出错了。我一直认为数字也可以解析,结果没有变化(也许这就是我塞满的地方)。
But if that's not the error, can someone write a custom makeLowerCase
function, to make the string lower case, perhaps using regex or something?
但如果这不是错误,有人可以编写一个自定义makeLowerCase
函数,使字符串小写,也许使用正则表达式或其他东西?
回答by spender
.toLowerCase function only exists on strings. You can call toString() on anything in javascript to get a string representation. Putting this all together:
.toLowerCase 函数只存在于字符串上。您可以对 javascript 中的任何内容调用 toString() 以获取字符串表示形式。把这一切放在一起:
var ans = 334;
var temp = ans.toString().toLowerCase();
alert(temp);
回答by 0x499602D2
Numbers inherit from the Number
constructor which doesn't have the .toLowerCase
method. You can look it up as a matter of fact:
数字从Number
没有该.toLowerCase
方法的构造函数继承。事实上,你可以查一下:
"toLowerCase" in Number.prototype; // false
回答by Guffa
It's not an error. Javascript will gladly convert a number to a string when a string is expected (for example parseInt(42)
), but in this case there is nothing that expect the number to be a string.
这不是错误。当需要字符串时,Javascript 很乐意将数字转换为字符串(例如parseInt(42)
),但在这种情况下,没有任何东西期望数字是字符串。
Here's a makeLowerCase
function. :)
这是一个makeLowerCase
函数。:)
function makeLowerCase(value) {
return value.toString().toLowerCase();
}
回答by Joe Coder
var ans = 334 + '';
var temp = ans.toLowerCase();
alert(temp);
回答by Quentin
It is a number, not a string. Numbers don't have a toLowerCase()
function because numbers do not have case in the first place.
它是一个数字,而不是一个字符串。数字没有toLowerCase()
功能,因为数字首先没有大小写。
To make the function run without error, run it on a string.
要使函数无错误地运行,请在字符串上运行它。
var ans = "334";
Of course, the output will be the same as the input since, as mentioned, numbers don't have case in the first place.
当然,输出将与输入相同,因为如前所述,数字首先没有大小写。