0

私はコンテンツをInstapaperに保存するためのSafari拡張機能に取り組んでおり、ブックマークのタイトル解析の強化に取り組んでいます。たとえば、最近保存した記事には、次のようなタグがあります。

レポート:マルウェアリダイレクトの影響を不均衡に受けている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);
};

誰かが私にこれのために働くヒントを与えることができれば、あなたの助けは大いにありがたいです!

4

1 に答える 1

4

正規表現が不正です。そのはず:

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

引用符がないことに注意してください。ここでは正規表現リテラルを使用しています。また、正規表現リテラルは。でバインドする必要があります/

検索してから置き換える代わりに、次の正規表現で置き換えることができます。

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

|これにより、文字が存在する場合、文字の後のすべてが削除されます。

于 2012-10-05T20:59:28.983 に答える