【发布时间】:2011-09-14 01:32:42
【问题描述】:
我有一个 json 数组,我目前通过翻转布尔标志来搜索它:
for (var c=0; c<json.archives.length; c++) {
if ((json.archives[c].archive_num.toLowerCase().indexOf(query)>-1)){
inSearch = true;
} }
我一直在尝试使用特殊字符“*”创建通配符正则表达式搜索,但我无法使用通配符遍历数组。
所以我想要完成的是当 query = '199*' 时,将 '*' 替换为 /[\w]/ 并基本上搜索 1990,1991,1992,1993,1994 + ... + 199a、199b等
我所有的尝试都变成了文字,我最终搜索了 '199/[\w]/'。
关于如何创建正则表达式通配符来搜索数组的任何想法?
谢谢!
【问题讨论】:
-
你能显示你做这个替换的代码吗?还有你要改什么?我假设 archive_num 是完整的字符串。
-
将所有内容变成文字的尝试是这样的:query = query.replace('*', /[\w]/);
-
在JS中你不应该使用引号'*'但是/*/作为搜索字符串并且替换字符串应该被引用
标签: javascript regex arrays search wildcard