正则表达式匹配第二个单词的开头字母

时间:2018-05-03 10:44:09

标签: javascript angularjs regex

考虑以下名称: sathya,subha,selvi,shalini和ashok selvam

我编码为( 'firstname': new RegExp('^' + req.body[fieldName], 'i') ),这意味着,如果我输入'在searchtext框中,它将显示以' s开头的所有名称。

但是在ashok selvam这个名字中,第二个词是以'开头。我希望这个名字也能在我进入' s时显示。在searchtext框中。

我必须使用哪个正则表达式来获得结果?

2 个答案:

答案 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')