如何从字符串的起始位置检查是不是包含字符串
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) 后,它没有返回任何结果。甚至没有得到任何控制台错误来检查 我明白了,你有可能在searchText
位于第一个字符串 titleText
的位置 0 中。位置 0 意味着它在开始时是正确的。如果为 1,则表示它在第二个位置。又名 bc
在 abcd
中找到。检查它是否为!== -1
,相当于检查第二个字符串是否出现在第一个字符串的某处
其实我没有得到你的建议。以前我尝试使用 return (titleText[0]).indexOf(searchText) !== -1;如果我在搜索字段中给出 a 它返回 ["abcd","abcdefg"] 但在搜索中给出 "ab"字段它什么都不返回以上是关于如何从字符串的起始位置检查是不是包含字符串的主要内容,如果未能解决你的问题,请参考以下文章