質問: text; div.replaceChild(pre, node); } } ```
回答: 一般的に置換文字列のような「メタ文字」を用意するときには、 「メタ文字」自体が本文に影響は与えないか?メタ文字によっておこる処理に影響がないかを考えます。 また「エスケープ文字」もセットで考える必要があります。 置換という処理で考えると、あまり頻繁に使われている文字をメタ文字に設定すると結構処理がめんどくさいと思います。例えば例題で改行をメタ文字にしてしまうと改行自体にエスケープ文字を入れる必要があり、テキスト入力時に手間が増えるでしょう。 あまり使われない文字を利用することになるようになります。 またタグの入れ子を許可するということを考えると、開始タグおよび閉じタグが同じ文字だと入れ子の実現がちょっと大変そうです。 ``` 上記テキストノード ``` 汎用性高くになると案cになるでしょう。 どの案についても開始タグと閉じタグの整合性を検討する必要がありそうですね。 そのほかの案であればこのStackoverflowで利用されているマークアップ言語などを参考にするとよいかと思います。 エスケープ文字については利用しないこともできますが、その文字を使いたいとなった時には必要になってきます。エスケープ文字については決めの問題ですが、一般的には特殊文字を一つ用意して、あとは特殊文字を組み合わせる(連続させるとか)というやり方ですね。 例えば CSVであれば`"`のエスケープ文字である`""` htmlであれば`<>&`のエスケープ文字`<>&` 等です。 置換の処理の流れですが、エスケープ文字を利用するのであれば エスケープ文字を除いたメタ文字を置換する → エスケープ文字を除外する という形になります。 おそらく正規表現を利用した置換処理が良いかと思いますが、 正規表現はそれだけで大きな単元になるのでここで回答することは難しいのでまずは学習していただいてわからないことがあれば再度質問してもらう形が良いかと思います。 正規表現 - JavaScript