事前定義されたタグを自動的に置き換える方法
P粉330232096
2023-09-03 12:43:03
<p>上記のように置換する必要がある文字がいくつかありますが、その方法がわかりません。</p><p>
置換する文字: </p>
<pre class="brush:php;toolbar:false;">最初 | 終了 |
<日> | |
<赤> | </赤>|
<a ###> | </> |</pre>
<p><code>day => 現在の日付を取得します (例: 14)</code></p><p>
<code>red => カラーレッド</code> </p><p>
<コード><a ###https://www.google.com/>リンク</> => <a href="https://www.google.com/"> リンク< ;/>gt;<
<p><code>入力: こんにちは<red>シロさん</red></code> </p><p>
<code>出力: こんにちは<span style="color: red">シロさん</span></code></p>
<p>私のチャット履歴。 </p>
<p>上記のタグの置換をチェックする汎用関数の書き方を教えていただけますか?
これは私のコードです: </p>
<p>
<pre class="snippet-code-js lang-js prettyprint-override"><code>export const formatTags = (content) => {
const firstTag = "<red>";
const SecondTag = "</red>";
const tagsIndex = [...content.matchAll(new RegExp(firstTag, "gi"))].map(
(a) => a.index
);
const 初期コンテンツ = コンテンツ;
tagsIndex.forEach((インデックス) => {
const tagContent = initialContent.substring(
インデックス firstTag.length、
InitialContent.indexOf(秒タグ, インデックス)
);
if (firstTag === "<red>") {
content = content.replaceAll(
`${firstTag}${tagContent}${secondTag}`、
`<span style="color: red">${tagContent || "疑問"}</span>
);
}
});
コンテンツを返す。
};</code></pre>
</p>
<p>
<pre class="snippet-code-html lang-html prettyprint-override"><code><span
:class="(msg.image || msg.file) && msg.text ? 'mt-2' : ''"
v-html="msg.text"
v-linkified:オプション="{
クラス名: currentUserId === msg.senderId
? 'メッセージ外部リンク'
: ''、
}"
/></code></pre>
</p>
<p>私の英語はあまり上手ではなくてごめんなさい! </p><p>
皆さん、ありがとうございました! </p>
置換ルールの
マップ
を作成できます。テキストのキャプチャに使用される正規表現がキーとなり、replace
で使用される置換関数コールバックが値になります。ルールをループして文字列を更新します。