我使用JSON获取一个对象数组,然后我的目标是让用户搜索特定的登录信息。为此,我希望他们能够键入一个字母并检查每个对象登录,如果包含该字母我想显示它。 为了实现这一目标,我使用了以下代码:
var i;
var out="";
var exp=/d/g;
var result = " ";
for(i=0;i<users.length;i++){
result= exp.test(users[i].login);
if(result){
out+= users[i].login+ " ";
}
}
如果我写正则表达式(在这种情况下为d),它可以正常工作但是一旦我尝试在正则表达式中放置一个变量它就不会工作。如何创建一个将用户输入并使用测试功能执行相同任务的正则表达式?或者如果有一个更好/更优雅的解决方案,那就是idk。我知道已经有不同的正则表达式问题,但我找不到帮助我的问题。
感谢您的帮助!
答案 0 :(得分:0)
您正在测试一个文字字符串 - 该字符串由用户传入,但它仍然是字面值,而不是正则表达式。
所以你应该尝试:
if( users[i].login.indexOf(userInput) > -1)
如果给定的输入在搜索的字符串中,则会通过。