【发布时间】:2018-11-30 11:24:45
【问题描述】:
我正在尝试创建一个搜索特定单词的函数。
例如,如果我点击字母“O”,第一个结果将是单词“Oasis”(而不是“U2 - Still Haven't Found What I'm...”和所有其他包含“O”的歌曲他们的话),或任何其他中间词。
它需要忽略空格 - “”,字符“-”(“ -” “)和'或其他字符,因此它将所有thw单词连接在一起。
例如,当我点击“dontlookbackin”时,搜索会找到以我按下的第一个字母开头的单词,而不是单词中的另一个字母,依此类推。
到目前为止,我只能进行简单的搜索 - 找到包含我按下的第一个字母的每个单词。
“搜索”功能的具体部分:
SearchSong = () => {
console.log("Pressed")
var e = this.state.searchRes;
if (e == "") {
return;
}
var musicList = [];
var songs = [];
if (this.state.songs != null) {
songs = this.state.songs;
musicList = songs.filter(song =>
song.Song_Name.toLowerCase().includes(e.toLowerCase())
);
如果需要更多细节和修复,请告诉我。
【问题讨论】:
-
实际问题是什么?删除空格等?由于字符串 'Oasis - Don't Look Back In Anger' 没有空格并且小写是 'oasisdontlookbackinanger',所以你的 .includes() 检查应该找到它。
-
@Shilly 我需要它来查找仅以我按下的字母开头的单词,而不是第二个(第三个等等)。至于现在它不会忽略字符和空格。
标签: javascript reactjs react-native search create-react-app