2014-02-05 62 views
0

比方說,有串:正則表達式不匹配所有的情況下

var se = 'Trampolines rain cover'; 

和泰雷是搜索詞:

var te = 'trampoline'; 

我正則表達式:

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

它確實匹配「蹦牀「的字符串。

問題:如果我尋找t ='trampoline rain';在字符串與提RegExp - 沒有問題 - 它確實匹配,但如果我會尋找t ='蹦牀蓋'將不會有任何匹配。

如果可以匹配短語(即使字符串之間存在其他詞),我應該如何編輯此RegExp?

+1

它看起來像's'和't'需要得到扭轉。另外,'\ b((X)|(X)[s])\ b'可以簡化爲'\ bXs?\ b'。 –

+0

這和你以前的問題有什麼不同?不要多次提問同一個問題。 –

+0

這個問題在前面的話題中有所不同,但我編輯了它,因爲我找到了解決方案。 – Tautvydas

回答

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); 
+0

謝謝,這是我需要的。由於我只在某些字符串中進行搜索,沒有換行符和其他例外情況 - 它符合需求。 – Tautvydas

相關問題