首页 > 解决方案 > 字符串长度显示这个字符串的长度是7,但实际上字符串长度是6

问题描述

我的常量声明是这样的:

const table = req.params.table;

当我发送一个带有“circle”作为表参数的请求时,table.length返回为 7。

我试着这样做:

table.toString().trim().length

但它仍然显示这个词的长度是 7。

我怎么解决这个问题?

标签: javascriptnode.jsexpress

解决方案


根据我在收到的数据中观察到的情况,有一个额外的U+200B zero width space字符。这就是长度没有达到预期的主要原因。

我已经{ table : '​circle' }从评论中复制并尝试在浏览器控制台中执行相同的操作,这就是它在控制台中的外观。

在此处输入图像描述

在下面的代码片段中也发生了同样的事情,即\u200b添加了零宽度空格 unicode 字符

let x = { table : '​circle' }

console.log(x.table.length);

为了避免此问题,您可以执行以下操作

let x = { table: '​circle' }

const { table } = x;
const table2 = table.replace('\u200b', '');

console.log(table.length);
console.log(table2.length);

更多信息请参考


推荐阅读