前段时间始末在chan和提早规划上写诗,提早规划接纳的是markdownGUI,chan写诗顶用的是富图形界面器。对完全不异的文本,常常在chan上早已写了几百字,黏贴到提早规划上多于两千不出,提早规划上对英语字符串三个单字算是三个字。
好比说那首诗提早规划上表白575字,chan上有1850字。
接下去他们瞧瞧在后端如何切确的排序页数。
假定,他们把三个英文简化字和三个英语字符串都算是三个字。好比;
"五个字" = 3 "three" = 5 接纳 String.lengthlength特征则暗示三个字符串串的宽度,能回到字符串标识符模块的数目。JavaScript接纳UTF-16的标识符,此标识符接纳三个 16 BCC的标识符模块来则暗示绝大部门常用的字符串,接纳三个标识符模块则暗示不常用的字符串。因而 length 回到值可能将与字符串串中前述的字符串数目不完全不异。
var x = "Mozilla"; console.log("Mozilla 是" + x.length + "个字"); //Mozilla 是7个字 var z = "三五个字"; console.log( z.length); //4接下去他们看许多特定的情形:
var y = " "; console.log( y.length); //2三个非常常用的emoji眼妙算是2个字,你能猜呵呵 算几个字?
var z = " "; console.log( z.length); //11要说,11个字所以多,原因在于阿谁眼神是由五个塞雷县 、 、 、 堆叠而成的,他们能透过for轮回式将 降解。
for (const codePoint of ) { console.log(%o, codePoint) } //=> //=> //=> //=> //=> //=> //=>出格留意:
空字符串串的 length 为 0。String.length 回到 1。接纳[...""].length假设接纳将字符串串转成三个字符串,得出结论的结论和下面其实不完全不异。
console.log( [..." "]);// [ , , , , , , ] console.log( [..." "].length);// 7 console.log( [..." "].length);// 1 接纳 Intl.Segmenter除此之外一类在 JavaScript 中排序字符串数的体例是接纳 Intl.Segmenter。
Intl.Segmenter 是一类 API,能考虑到词汇天然情况,将字符串串降解为字素、单字和语句。
const segmenter = new Intl.Segmenter("zh", { granularity: "grapheme" }); console.log([...segmenter.segment(" ")].length); // 1 const segmenter = new Intl.Segmenter("zh", { granularity: "grapheme" }); console.log([...segmenter.segment(" ")].length); // 1能看见,下面眼神的length多于1,那也更符合他们的排序市场需求。
归纳:文本string.length[...string].lengthIntl.Segmenter五个字333three555211 1171
0