如何使用正则表达式和用户输入变量
问题描述:
我得到一个使用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是否有更好的/更优雅的解决方案。我知道已经有了不同的正则表达式问题,但我没有找到帮助我的人。
感谢帮助!
答
您正在测试文字字符串 - 该字符串是由用户传入的,但它仍然是文字,而不是正则表达式。
所以,你应该尝试:
if(users[i].login.indexOf(userInput) > -1)
如果给定的输入搜索字符串中这将成为过去。
确定你想要一个正则表达式,当你所描述的听起来更像'if(users [i] .login.indexOf(userInput)> -1)' –
'var variable ='d';新的RegExp(变量,'g');'(把它作为*注释,*,因为我相信尼提提供了*答案*) –
我相信你是正确的尼。我是JavaScript新手,发现了indexOf,但我不确定是否可以使用它,所以我采用了正则表达式的方法。感谢你的回答! – jmor