使用JavaScript解析管道字符的短语

时间:2012-10-05 20:56:19

标签: javascript safari-extension

我一直致力于我的Safari扩展程序,用于将内容保存到Instapaper,并且一直致力于增强我对书签的标题解析。例如,我最近保存的文章有一个如下所示的标记:

  

报告:Bing用户不成比例地受恶意软件重定向影响| TechCrunch的

我想在Safari扩展程序中使用JavaScript删除管道字符后面的所有文本,以便在将最终书签保存到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);
};

如果有人能给我一个适用于此的提示,那么你的帮助将非常赞赏!

1 个答案:

答案 0 :(得分:4)

你的正则表达式格式错误。它应该是:

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

注意缺少报价;我在这里使用正则表达式文字。此外,正则表达式文字需要由/绑定。

您可以使用以下正则表达式替换,而不是搜索然后替换:

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

这将删除|字符后的所有内容(如果存在)。

相关问题