javascript 正規表現
Q&A
Closed
解決したいこと
javascriptのRegExp()
とfontタグを使ってコードを色付けしてくれる
というようなプログラムを作成しているのですが、演算子に色付けする際に前に生成されていたhtmlタグの<
や>
、カラーコードを指定する際の=
も変換されてしまいます。
htmlタグには引っかからず、かつその他の条件を指定するためにはどのような表現になるでしょうか。
該当するソースコード
RegExpでエスケープするには\が二ついるそうです。
const ope = ["\\+", "-", "\\*", "\\/", "=", ">", "<"]
let contents = "const a = 1 + 2 - 3"
for (i in ope) {
contents = contents.replace(RegExp(ope[i], "g"), `<font color=#ffffff>${ope[i]}<font>`)
}
console.log(contents)
結果
const a <font color=#ffffff><<font>font color=#ffffff<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>=<font color=#ffffff><<font>font<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font> 1 <font color=#ffffff><<font>font color<font color=#ffffff><<font>font color=#ffffff<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>=<font color=#ffffff><<font>font<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>#ffffff<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>\+<font color=#ffffff><<font>font<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font> 2 <font color=#ffffff><<font>font color<font color=#ffffff><<font>font color=#ffffff<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>=<font color=#ffffff><<font>font<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>#ffffff<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font>-<font color=#ffffff><<font>font<font color=#ffffff><<font>font color=#ffffff>><font color=#ffffff><<font>font> 3
おそらく無限ループなのでタイムアウトしました
0 likes