RegEx与所有情况都不匹配

时间:2014-02-05 15:54:09

标签: javascript regex

假设有字符串:

var se = 'Trampolines rain cover';

和tere是搜索词:

var te = 'trampoline';

我有RegExp:

RegExp('\\b(('+te+')|('+te+')[s])\\b', 'gi');

它匹配字符串中的'Trampolines'。

问题:如果我寻找t ='蹦床雨';在带有提及RegExp的字符串中 - 没有问题 - 它确实匹配,但如果我要寻找 t ='trampoline cover',则不会有任何匹配。

如果可以匹配短语,我该如何编辑这个RegExp,即使它们之间还有其他单词?

1 个答案:

答案 0 :(得分:2)

您似乎正在尝试进行全文搜索,这在JS中无法完全发挥作用。看看http://lunrjs.com/

但只是为了您的使用,它可能会起作用

var se = 'Trampolines rain cover';
var te = 'trampoline cover';

var regexBuilder = '\\b' + te.split(/\s+/).join('s?\\b.*?\\b') + 's?\\b';
var regex = new RegExp(regexBuilder, 'gi');

se.match(regex);