【发布时间】:2021-02-20 21:51:09
【问题描述】:
我正在尝试根据用户输入的查询匹配一些文本。在遇到一些问题后,我发现String.indexOf 的这种相当奇怪的行为我根本无法理解:
如果我尝试将不带变音符号的查询与带变音符号的字符串匹配,它会起作用:(不知道为什么)
"brezzel cu brânză".indexOf("bra")
11
但是将相同的字符串与后面的另一个字母匹配,不起作用:
"brezzel cu brânză".indexOf("bran")
-1
(在 Chrome 和 Firefox 中测试,行为相同)
这是我不知道的记录在案的行为还是这里到底发生了什么?
【问题讨论】:
-
a不等于â..brân在字符串中但bran不在字符串中 -
如果这些字符在你看来是一样的(你的显示很奇怪),请在 js 控制台中运行一些代码。
console.log("a"=="â") -
Array.from("brânză")揭示了字符串中的确切内容。 -
源字符串中的“a”字符由正常的拉丁语“a”加上“组合抑扬符”字符组成,Unicode 代码点 770(十进制)。
标签: javascript diacritics