gpt4 book ai didi

javascript - IndexOf 未按预期工作 : it only finds substrings shorter than 5 characters

转载 作者:行者123 更新时间:2023-12-02 22:13:03 25 4
gpt4 key购买 nike

我正在尝试按 channel 名称过滤电视 channel 元素。我有一个 html 输入元素,我从中获取它的值。然后,我迭代所有 channel 名称的数组,如果给定名称的 indexOf 返回值大于 -1,它将为该 channel 分配一个“找到”类。

但是,如果输入值超过 4 个字符,indexOf 将返回 -1。

输入值和 channel 名称均采用 utf-8 格式(它们均由同一个 php 文件生成;有些名称是西里尔字母,有些是英语)。尽管如此,如果输入值仅包含英文字符,indexOf 仍可以正常工作。另外,如果我将任何 channel 名称记录到控制台,将其复制并粘贴到 html 输入中,indexOf 也会正常工作。

我可以想象两个字符串具有不同字符集的情况,但为什么是 4 个字符?我该如何解决这个问题?

这是我的代码:

function searchChannels(search,context){
//search is form input val()
//context is their parent container

var search = search.toLowerCase();

channels = context.find('.channel-item');

channels.removeClass('found');

for(i = 0;i < channels.length;i++){
currChnl = $(channels[i]);
channelName = currChnl.attr('data-name').toLowerCase();
if(channelName.indexOf(search) > -1) currChnl.addClass('found');
}
};

输入字符串的示例有 Мульти(失败)、Муль(有效)和 Nat Geo Wild(有效)。 channel 名称分别为 Мультиладния 和 Nat Geo Wild。有趣的是,当我从页面复制 channel 名称或从代码检查器复制数据名称属性并将其粘贴到我的表单中时,它也可以工作。

另一个示例:'1-ый обр' 失败 '1-ый об' 在 '1-ый образовательный' 中工作

最佳答案

我不完全确定发生了什么,但是您的 Angular 色发生了一些编码。当我将它们粘贴到控制台时,我看到一个额外的字符。 i.imgur.com/x5S7c5W.png

关于javascript - IndexOf 未按预期工作 : it only finds substrings shorter than 5 characters,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59495918/

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