2014-06-18 165 views
1

停止我有一個這樣的字符串:的Javascript搜索字符串開始,在結束與在另一個字符串

The planet is very big and the planet is heavy.

使用JavaScript,我想搜索字符串從年底開始,在另一停止串。

一個例子是,從單詞heavy開始,搜索單詞planet,但停在單詞big。這個例子中的第二個planet是我想要的,而不是第一個。因此,如果在bigheavy之間沒有planet的實例,那麼我想產生一個indexOf -1。

謝謝。

編輯:我可以通過將字符串拆分爲我想要的字符而不是搜索數組的第二個元素來完成此操作,但我想知道是否有函數可以執行此操作。

+2

到目前爲止你有嘗試過什麼嗎? –

+0

閱讀我編輯的帖子。 – Nicolas

+0

如果您已經找到了解決方案,則不應該將這個問題解釋爲「我該怎麼做......」您的解決方案出了什麼問題?爲什麼你想要一個替代品? – isick

回答

3

你可以拆分上的字「大」,然後只從最後subsstring組lastIndexOf。

IE:

function foo(input,search,stopWord){ 
    //Split the input 
    var arr=input.split(stopWord); 

    //return only from last substring group 
    return arr[arr.length-1].lastIndexOf(search); 
} 
foo("The planet is very big and the planet is heavy.","planet","big"); 

這是否給你所期望的結果?

0

運行

var startIdx = string.lastIndexOf('big'); 
var grabIdx = string.lastIndexOf('planet'); 
(startIdx < grabIdx)?grabIdx: -1) 
+0

因爲他想停止搜索分詞單詞,所以他不想搜索所有的子字符串 - 只有最後一個。 – isick

+0

斯普利特將是「」。所以向後搜索,如果你點擊「大」結束。 – Alpenglow

+0

但是,您的lastIndexOf或IndexOf效率更高。 – Alpenglow

相關問題