如何从字符串的起始位置检查是不是包含字符串

Posted

技术标签:

【中文标题】如何从字符串的起始位置检查是不是包含字符串【英文标题】:How to check from starting position of string contains a string如何从字符串的起始位置检查是否包含字符串 【发布时间】:2020-09-14 07:27:39 【问题描述】:

我想检查一个字符串是否包含另一个字符串。如果包含它应该显示在指定的网格中。

在我的列表中,我有 ["abcd","fabcdgh","fgh","sdfgabcd","hgtabc","abcdefg"] 之类的标题,我想检查“abcd”。 这是我的代码

        <div class="picture-item__details">
        <figcaption class="picture-item__title"><?php echo $title ?></figcaption>
        </div>

  const searchText = evt.target.value.toLowerCase();
  this.shuffle.filter((element, shuffle) => 

  const titleElement = element.querySelector('.picture-item__title');
  const titleText = titleElement.textContent.toLowerCase().trim();

   return (titleText).indexOf(searchText) !== -1;

    );

html div 中,我动态获取标题。在顶部我有一个搜索栏,我从那里获取搜索文本。 现在我想检查搜索栏是否包含“abcd”它应该只返回[“abcd”,“abcdefg”],而不是在字符串中间搜索。 我该使用哪个函数来找出标题是否包含从起始位置开始的“abcd”检查?

任何帮助表示赞赏...在此先感谢。

【问题讨论】:

【参考方案1】:

您只需将代码的返回语句更改为

return (titleText).indexOf(searchText) === 0;

另外,javascript 现在有一个方便的 startsWith 方法 - 所以你也可以把你的退货声明改成这个

return titleText.startsWith(searchText)

【讨论】:

添加 return titleText.startsWith(searchText) 后,它没有返回任何结果。甚至没有得到任何控制台错误来检查 我明白了,你有可能在 indexOf 的第一个解决方案! 通过使用 indexOf 我们如何实现预期的结果。实际上我是 javascript 的新手。所以我无法获得预期的结果。我正在使用 shuffle 库。 对于 indexOf,它返回第二个字符串在第一个字符串中的索引(位置)。因此,当它为 0 时,意味着第二个字符串 searchText 位于第一个字符串 titleText 的位置 0 中。位置 0 意味着它在开始时是正确的。如果为 1,则表示它在第二个位置。又名 bcabcd 中找到。检查它是否为!== -1,相当于检查第二个字符串是否出现在第一个字符串的某处 其实我没有得到你的建议。以前我尝试使用 return (titleText[0]).indexOf(searchText) !== -1;如果我在搜索字段中给出 a 它返回 ["abcd","abcdefg"] 但在搜索中给出 "ab"字段它什么都不返回

以上是关于如何从字符串的起始位置检查是不是包含字符串的主要内容,如果未能解决你的问题,请参考以下文章

如何检查字符串是不是包含从 a 到 z 的任何字母? [复制]

检查字符串是不是包含模式,忽略位置。并返回项目匹配的索引

检查字符串数组是不是包含值,如果是,则获取其位置

asp中如何判断一个字符串中是不是含有一个子字符串?

vba如何判断字符串里面是包含某个字符?

如何检查字符串是不是包含列表的任何元素并获取元素的值?