gpt4 book ai didi

javascript - 土耳其语字符串的子串

转载 作者:行者123 更新时间:2023-11-29 17:57:36 24 4
gpt4 key购买 nike

我有一个这样的字符串

var element = "İstanbul";

当我像这样将它转换为小写时:

var element = element.toLowerCase();

变成了

"istanbul"

我需要小写字符串 "istanbul"的子字符串。

因此,当我在小写操作之前执行此操作时

element.substr(0,2)

输出正确

enter image description here

但是当我执行以下操作时,我知道 substr(0,2) 应该给出 "is" 而不是 i 是错误的

enter image description here

为什么会这样,我该如何纠正?

最佳答案

发生这种情况是因为在更改为小写期间字符串被规范化,© 变成 2 个字符:"i" ( http://www.fileformat.info/info/unicode/char/0069/index.htm ) 和 "̇"(后者是变音符号 http://www.fileformat.info/info/unicode/char/0307/index.htm )。

为防止出现这种情况,您可以使用 ES2015 字符串迭代工具将字符串拆分为字符,并将字符分别小写:

const arr_l_new = [...str].map(s => s.toLowerCase());

然后可以取前N个字符:

const first_2_chars = arr_l_new.slice(0, 2).join('');

注意:如果计算 first_2_chars 的长度,您会注意到它的长度为 3,这是由于变音符号,实际上对于小写的 i.

var str = "İstanbul";
const arr_l = [...str].map(s => s.toLowerCase());
const first_2_l = arr_l.slice(0, 2).join('');

console.log(first_2_l, first_2_l.length);

关于javascript - 土耳其语字符串的子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37721667/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com