javascript - 创建新的 RegExp 对象从变量中删除一个字符
问题描述
我需要在每个字符串中隔离一个单词,并且该单词是基于查询参数的变量。用户搜索一个词,然后我过滤 API 结果以查找仅包含该词的歌曲(例如,如果我搜索“帮助”,则“帮助正在路上”很好,但“无助”不是) .
当我之前硬编码一个搜索词时,它工作得很好:
const songRegex = /\bhelp\b/g;
我在控制台记录了搜索词 + 从 API 返回的歌曲标题,然后在下面记录了使用正则表达式测试歌曲标题的结果:
要使用变量,我发现我应该创建一个new RegExp
对象。当前(失败的)正则表达式如下:
const songRegex = new RegExp("\b" + searchTerm + "\b", "g");
这里我也在记录正则表达式本身,无论我输入什么,搜索词的最后一个字符都将被删除。“帮助”->“帮助”;“帮助”->“帮助”。
完整代码在这里:
const filteredSongsArray = [];
songsJSON.tracks.items.map((obj) => {
const songTitle = obj.name.toLowerCase();
const searchTerm = context.params.word.toLowerCase();
const songRegex = new RegExp("\b" + searchTerm + "\b", "g"); // creating the regex
const regexTest = songRegex.test(songTitle);
console.log(searchTerm + " + " + songTitle);
console.log(regexTest);
if (obj.explicit === true || regexTest === false) {
return;
} else {
filteredSongsArray.push(obj);
return;
}
});
解决方案
推荐阅读
- python - 如何使用 nvidia gpu (Ubuntu 18.04) 运行 jupyter notebook
- amazon-web-services - 我可以将 AWS API 密钥限制为特定的 EC2 实例(甚至是特定的 VPC)吗?
- php - PHPBB3 外部注册 - 获得电子邮件确认
- java - 尝试通过与客户端和服务器的 java UDP 套接字连接发送图像时出现 Image = Null 错误
- html - 在 h3 下为每个标题单独更改颜色
- javascript - 一个ajax请求,但是在服务器中收到了两次,导致添加新记录时重复记录
- python - 换行问题
- sql - 在 Oracle SQL Developer 中从具有类型的表创建视图
- ruby-on-rails - 如何删除rails API和vue Js中的记录
- java - LocalDate 字段验证不适用于 DTO