2012-10-05 11 views
0

我一直在研究我的Safari擴展以將內容保存到Instapaper,並一直致力於增強書籤的標題解析。例如,我最近保存的文章有一個如下所示的標籤:使用JavaScript解析帶管道字符的短語

報告:Bing用戶不受惡意軟件重定向影響| TechCrunch的

我想使用JavaScript在我的Safari瀏覽器插件刪除所有的管道字符後的文本,這樣我可以做最後的書籤看起來更整潔,一旦它被保存到Instapaper的。

我已經嘗試稱號,一對夫婦使用的代碼塊看起來像這樣類似的案件成功解析:

if(safari.application.activeBrowserWindow.activeTab.title.search(' - ') != -1) { 
      console.log(safari.application.activeBrowserWindow.activeTab.title); 
      console.log(safari.application.activeBrowserWindow.activeTab.title.search(' - ')); 
      var parsedTitle = safari.application.activeBrowserWindow.activeTab.title.substring(0, safari.application.activeBrowserWindow.activeTab.title.search(' - ')); 
      console.log(parsedTitle); 
}; 

我開始投入循環一次,我想這樣做與此相同的事情管道字符;但是,由於JavaScript使用它作爲特殊字符。我試過幾個代碼來嘗試解決這個問題。最近這個樣子的(嘗試使用正則表達式和逃生管道字符):

if(safari.application.activeBrowserWindow.activeTab.title.search('/\|') != -1) { 
      console.log(safari.application.activeBrowserWindow.activeTab.title); 
      console.log(safari.application.activeBrowserWindow.activeTab.title.search('/\|')); 
      var parsedTitle = safari.application.activeBrowserWindow.activeTab.title.substring(0, safari.application.activeBrowserWindow.activeTab.title.search('/\|')); 
      console.log(parsedTitle); 
}; 

如果有人可以給我,爲了這個工作的提示,您的幫助將是大大感謝!

回答

4

您的正則表達式格式錯誤。它應該是:

safari.application.activeBrowserWindow.activeTab.title.search(/\|/) 

注意缺乏引號;我在這裏使用正則表達式。此外,正則表達式文字需要受到/的約束。

除了搜索,然後更換,你可以簡單地做下面的正則表達式替換一個:

str = str.replace(/\|.*$/, ""); 

如果存在的話這將|字符後刪除所有內容。

+1

工作完美!謝謝!!!我仍然在學習如何使用正則表達式,並且完全沉迷於這一個! –

+2

@Jordan,你應該接受答案。 – canisbos

+1

@canisbos我打算這樣做。我上次回答的時間不夠長,我不能接受它。 –