javascript - JSON.stringify 会增加字符串的长度吗?

标签 javascript json

我面临着一个特殊的问题。对于我的 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/

相关文章:

javascript - 数据绑定(bind) ="click"不适用于嵌套的挖空 View 模型

java - Jackson 解析 JSON

json - Swift Siesta 编辑获取的实体

java - 如何使用 java(spring) 将 json 对象消息生成到 kafka 主题中?

javascript - 更新名称后,我的数据库 `first_name` 显示为 0,last_name 显示为 "Arora"

javascript - 是否可以使用 Javascript 加载特定文件类型?

javascript - 尝试创建一个可以向下滚动页面的 chrome 扩展

javascript - Highchart 日期选择器

mysql - 如何在 MySQL 中搜索 json 值数组上的数据

javascript - 在 JavaScript 中生成 JSON 架构