如何在javascript中过滤具有一些字符序列的字符串?

时间:2018-03-05 17:34:45

标签: javascript

考虑到我有一个用户名列表,我需要搜索具有搜索键的用户。对于每个用户名,如果它与密钥匹配,我会将其添加到搜索结果中,如以下 javascript 代码所示:

var username_1 = "amal";
var username_2 = "sayed ali mohamed";
var search_key = "am"; 
var index = username_1.search(search_key);
if(index != -1){
     console.log('Username 1 matched')
}

index = username_2.search(search_key);
if(index != -1){
     console.log('Username 2 matched')
}

很明显,只有username1与查询匹配,但是注意到两个名称都有字母'a'和'm'。所以,如果我想要两个名字匹配,我需要使用以下正则表达式:。* a。* m。*

问题:给出一串字符'c 1 c 2 c 3 ... c < sub> n ',如何将其转换为以下字符串'。* c 1 。* c 2 。* c 3 < / sub> ...。* c n 。*'以高效的方式使用javascript?

1 个答案:

答案 0 :(得分:1)

首先:您想要的正则表达式的格式为/a.*b.*c/,而不是/a*b*c*/。后一个表达式只匹配aaaabbccccc之类的字符串,并且不匹配axxxbxxxc

第二:从"abc"转换为/a.*b.*c/的最简单方法是将字符串拆分为空分隔符,然后将结果数组与通配符连接:

var input = "abc";
var regex = new RegExp(input.split("").join(".*"));