Javascript 匹配第二个单词开头字母的正则表达式
请考虑以下名称: 萨提亚、苏巴、塞尔维、沙利尼和阿肖克·塞尔瓦姆 我编码为Javascript 匹配第二个单词开头字母的正则表达式,javascript,angularjs,regex,Javascript,Angularjs,Regex,请考虑以下名称: 萨提亚、苏巴、塞尔维、沙利尼和阿肖克·塞尔瓦姆 我编码为('firstname':新的RegExp('^'+req.body[fieldName],'I')),这意味着,如果我在搜索文本框中输入's',它将显示所有以's'开头的名称 但在ashok selvam这个名字中,第二个词是以“s”开头的。我希望在搜索文本框中输入“s”时也显示此名称 我必须使用哪个正则表达式才能得到结果?可能是这样的 ( 'firstname': new RegExp('(^' + req.body[
('firstname':新的RegExp('^'+req.body[fieldName],'I'))
,这意味着,如果我在搜索文本框中输入's',它将显示所有以's'开头的名称
但在ashok selvam这个名字中,第二个词是以“s”开头的。我希望在搜索文本框中输入“s”时也显示此名称
我必须使用哪个正则表达式才能得到结果?可能是这样的
( 'firstname': new RegExp('(^' + req.body[fieldName] + ')|(.*\s+' + req.body[fieldName] + ')', 'i') )
您可以使用alternaton非捕获组
(?:^ | \\s)
,而不仅仅是^
:
new RegExp('(?:^|\\s)' + req.body[fieldName], 'i')
现在,搜索将在字符串开头或空格后执行
如果搜索字符串可能包含特殊字符,则可能需要对其进行转义:
new RegExp('(?:^|\\s)' + req.body[fieldName].replace(/[-\/\\^$*+?.()|[\]{}]/g, '\\$&'), 'i')
欢迎来到StackOverflow。请拿着这本书四处看看,通读一遍,然后阅读,并提供一个答案。如果周围的人能够轻松阅读并理解您的意思或问题所在,他们可能更愿意提供帮助:)尝试
newregexp(“(^ | \\s)+req.body[fieldName],“i”)
。如果搜索字符串可能包含特殊字符,您可能需要对其进行转义,new RegExp(“(^\\\\s)”+req.body[fieldName]。替换(/[-\/\\^$*+?。()\[\]{}]/g,“\\\$&”,“i”)
它工作正常,很高兴为您工作。也请考虑一下我的回答是否对你有帮助。你能解释一下吗?