1
下記のJavaScript関数は、WordPress用のMCEditor WYSIWYG Editorプラグインの一部です。JavaScript Regex画像検索では、画像タグにCSSクラス名が必要です
それは、この形式の画像のためのポストのテキストエディタを検索します。
<p><img src="http://test.dev/primary.jpg" class="mceItem code_syntax_highlighter" data-sh-attr="%20type%3D%22primary%22%20header%3D%22header-text%22%20footer%3D%22footer-text%22" data-sh-content="code-here" data-mce-resize="false" data-mce-placeholder="1" data-mce-src="http://test.dev/primary.jpg"></p>
それは、このでそれらを置き換えます。
[code_syntax_highlighter type="primary" header="header-text" footer="footer-text"]code-here[/code_syntax_highlighter]
問題は、以下の正規表現は、現在の内部で任意の画像と一致していることです<p>
タグ。画像はcode_syntax_highlighter
のCSSクラスを持っていないのであれば、それは以下のJavaScriptで一致して交換されることはありません、私は一致するCSSクラス名を持っているだけで一致したイメージ= code_syntax_highlighter
にそれを変更する必要が
。
誰でもこのCSSクラスの存在を要求するRegexの修正を助けることができますか?
function restoreShortcodes2(content) {
return content.replace(/(?:<p(?: [^>]+)?>)*(<img [^>]+>)(?:<\/p>)*/g, function(match, image) {
var data1 = getAttr(image, 'data-sh-attr');
var con = getAttr(image, 'data-sh-code');
if (data1) {
return '<p>[' + short_code_tag + data1 + ']' + con + '[/'+short_code_tag+']</p>';
}
return match;
});
}
これは、限り、私は私のイメージタグが '決算前に末尾にスペースがあることを確認してくださいとして動作する必要があります。この1
であなたの正規表現を置き換えます> 'タグはうまくいきます。私が持っているもう一つの問題は、私のソーステキストに1つ以上のイメージがある場合、それは1つのイメージをすべて1つのイメージに置き換えることです。それがなぜ今はうまくいかないのでしょうか?ありがとう – JasonDavis
私はそれを強くするために終了タグを修正しようとしました。 2番目の問題については、コードを詳しく見ています – sachgits