Javascript:通配符正则表达式搜索
Javascript: Wildcard regex search
我需要用通配符regex:过滤字符串数组
// my search key
var myKeyword = 'bar';
// my search list
var strings = ['foo', 'bar', 'foobar', 'barfoo', 'hello', 'java', 'script', 'javascript'];
// my results
var results = [];
// the regexp, I don't understand
var regex = new RegExp('*/, myKeyword);
// the for loop
for (var i = 0; i < strings.length; i++) {
if (regex.test(strings[i]) {
results.push(strings[i]);
}
}
console.log(results); // prints ['bar', 'foobar', 'barfoo']
那么我该如何修复正则表达式呢?
如果你想用正则表达式来做,可以这样做:
var regex = new RegExp(keyword);
// if you want it case-insensitive:
var regex = new RegExp(keyword, 'i');
如果关键字包含任何特定于正则表达式的字符(如[
或*
),则会中断。如果这对你来说是个问题,你需要写一个函数来转义这些字符。
但是,通过使用strings[i].indexOf(keyword) != -1
测试关键字是否在字符串中,您可以更容易地解决问题,而无需使用regex。
不太确定您在这里到底想做什么。Javascript确实有文字RE,所以你可以只做:
var regex = /foo/;
这只是一种更好的方式:
var regex = new RegExp( 'foo' );
(但在第二种情况下,"foo"可能是传入的字符串参数。
正则表达式不需要任何前导/尾随通配符。
相关文章:
- 在mongoose中使用正则表达式在对象数组中进行查询搜索
- 在正则表达式中搜索单词
- 正则表达式搜索一个空格,后跟一个字符
- 在字符串列表中搜索任何出现的单词,如果单词的第一个字符匹配,则高亮匹配单词.Javascript正则表达式
- 搜索日历事件的Javascript正则表达式
- 如何使用 JavaScript 正则表达式搜索除一个实例之外的所有内容
- javascript中通配符搜索的正则表达式
- Javascript正则表达式,用于验证接收到的MySQL全文搜索的搜索字符串
- 用于在列表中进行多重搜索的正则表达式,用逗号分隔
- Javascript:通配符正则表达式搜索
- 在搜索表单中,替换空格或仅使用正则表达式的隐词和数字
- 正则表达式搜索短语,在短语后返回“n”个字符
- 搜索/将自定义标记替换为 javascript 正则表达式
- JavaScript正则表达式搜索每个单词和后续单词的开头
- 正则表达式在字符串中搜索两个字符串之间的内容
- Javascript/jQuery使用正则表达式搜索“分钟:秒”时间
- 如何确定搜索字符串是否被较大字符串中的锚标记包装 - javascript 正则表达式
- 搜索验证正则表达式在 JavaScript 中不起作用
- Javascript:字符串搜索正则表达式,从字符串的末尾开始
- 我如何搜索正则表达式javascript随机