0

現在、ゴースト ブログ プラットフォームを使用して、独自の拡張機能を対決に追加しようとしています。誰かが地図を入力してから英国の郵便番号を入力して、地図にレンダリングできるようにしようとしています[map bh278bf]。maps.js 拡張機能が追加され、テストしたとおりに機能することを確認しました。しかし、私の正規表現の知識は事実上存在しません。ここRegexr.comでRegExを動作させましたが、実行しても何も起こりません。同じコードペンを使用しましたが、動作せず、どうすればよいかわかりません。文字列を特定するのに助けが必要です!

表現:

/(\[map )([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]?[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)(\])/igm

拡張機能 (maps.js)

(function(){
    var maps = function(converter) {
        return [
            { 
                type: 'output', 
                filter: function(source) {
                    return source.replace(/(\[map )([A-PR-UWYZ0-9][A-HK-Y0-9][AEHMNPRTVXY0-9]?[ABEHMNPRVWXY0-9]?[0-9][ABD-HJLN-UW-Z]{2}|GIR 0AA)(\])$/gim, function(match) {
                        return "<span>Map will go here</span>";
                    });
                }
            }
        ];
    };
    // Client-side export
    if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.prettify = maps; }
    // Server-side export
    if (typeof module !== 'undefined') module.exports = maps;
}());
4

1 に答える 1

1

あなたは近くにいましたが、まだそこにはいません。

  1. あなたの正規表現は有効ではありません。

    /[マップ (GIR 0AA|A-PR-UWYZ ?[0-9][ABD-HJLNP-UW-Z]{2})]/ig

大文字とi小文字を区別しません。回答を参照して ください https://stackoverflow.com/a/29302162/475884

  1. 実際のエクスポートは、代わりwindow.Showdown.extensions.prettify = mapsに必要な場所で無効ですwindow.Showdown.extensions.maps = maps

どこで入手できますか

// https://stackoverflow.com/questions/164979/uk-postcode-regex-comprehensive

(function(){
    var maps = function(converter) {
        return [ { 
            type: 'lang', 
            filter: function(text) {
                return text.replace(/\[map (GIR 0AA|[A-PR-UWYZ]([A-HK-Y]([0-9][A-Z]?|[1-9][0-9])|[1-9]([0-9]|[A-HJKPSTUW])?) ?[0-9][ABD-HJLNP-UW-Z]{2})\]/ig, 'map');
            }
        }];
    };
    // Client-side export
    if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.maps = maps; }
    // Server-side export
    if (typeof module !== 'undefined') module.exports = maps;
}());

詳細については、次のfsfiddleを参照してください。

于 2015-04-30T03:08:43.290 に答える