我面临着一个特殊的问题。对于我的 REST API,我需要验证手机号码是否为 10 位数字。但是当我执行 JSON.stringify 时,它显示长度为 12。
var num = req.body.phone;
console.log(num);
console.log((JSON.stringify(num)).length);
console.log((JSON.stringify(num)).length==10);
输出:
1111111111
12
10
最佳答案
不要使用JSON.stringify
将数字转换为字符串。只需附加一个空字符串即可:
var num = 1234,
str = num + '';
console.log(str, str.length); // "1234", 4
或者,如果您愿意,可以使用 .toString()
:
var num = 1234,
str = num.toString();
console.log(str, str.length); // "1234", 4
或者:
var str = String(1234);
console.log(str, str.length); // "1234", 4
<小时/>
回答标题中的问题:
JSON.stringify
在调用号码时不添加任何特殊字符。它只是将数字转换为字符串:
var str = JSON.stringify(1234);
console.log(str, str.length); // "1234", 4
您的输入中可能缺少一些额外的字符。或者,最有可能的是,您stringify
的输入已经是一个字符串。在这种情况下,它会添加一组额外的引号:
var str = JSON.stringify("1234");
console.log(str, str.length); // ""1234"", 6
关于javascript - JSON.stringify 会增加字符串的长度吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25804775/