考虑以下名称: sathya,subha,selvi,shalini和ashok selvam
我编码为( 'firstname': new RegExp('^' + req.body[fieldName], 'i') )
,这意味着,如果我输入'在searchtext框中,它将显示以' s开头的所有名称。
但是在ashok selvam这个名字中,第二个词是以'开头。我希望这个名字也能在我进入' s时显示。在searchtext框中。
我必须使用哪个正则表达式来获得结果?
答案 0 :(得分:0)
这样的事可能吗?
( 'firstname': new RegExp('(^' + req.body[fieldName] + ')|(.*\s+' + req.body[fieldName] + ')', 'i') )
答案 1 :(得分:0)
您可以使用替代非捕获组(?:^|\\s)
而不仅仅是^
:
new RegExp('(?:^|\\s)' + req.body[fieldName], 'i')
现在,搜索将在字符串的开头或空格后执行。
如果搜索字符串可能包含特殊字符,您可能需要将其转义:
new RegExp('(?:^|\\s)' + req.body[fieldName].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'i')