Kilimanjaro Warehouse

WEBとかゲーム開発のことについて書きます。

JavaScript: highlight.js導入時に発生したUncaught SyntaxError: Invalid regular expressionの解消法

highlight.jsは手軽にシンタックスハイライトを行えるオープンソースのライブラリです。

Usageに従い導入作業を行っていたところ、以下のエラーが発生しました。

Uncaught SyntaxError: Invalid regular expression:
 /([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\s*,\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\s+)+[a-zA-Z_]\w*\s*\(/
: Range out of order in character class

調べてみると、どうやら日本向けのGoogle Chrome
デフォルトの文字コードがShift-JISになっていることで起きる不具合のようでした。

この件に関しては、既にフォーラムにも同様の症状が報告されており、
文字コードUTF-8を使用する設定に変更することで解消するということでした。
github.com

<meta charset="UTF-8">

というmetaタグを書き足す、もしくは

<script charset="UTF-8">...</scipt>

スクリプト読み込みの際に文字コードを設定することで、
正常に読み込まれるようになります。