幅なし空白文字を削除せよ

先日とある製品を利用した時、クライアントサイドの日本語文字列の文字数が想定値より多く取得される現象に遭遇しました。

何や?Σ(・∀・;)
と思いChromeの開発者モードで確認したところ「​」が挿入されている!!

幅なしの空白文字やんけ、なんで特殊文字対策してないねん!*1

とか内心思いましたが冷静にjavascriptでトリムする方法を検討、取りあえず下記で行けるという結論に達しました。
サーバーサイドでサニタイジングする方が良いけどカスタマイズしたくない。

 var str_result = "対象文字列".replace(/[\u200B-\u200D\uFEFF]/g, '');

上で行けるか実験(`・ω・´)

 //ターゲット文字列
 var tar_char = "お​も​て​な​し";
 //そのまま実行
 console.log(tar_char.length); //9 お​も​て​な​し
 //空白をトリムして実行
 var str_result  = tar_char.replace(/[\u200B-\u200D\uFEFF]/g, '');
 console.log(tar_char.length); //5 おもてなし


正直ただのlength打って適切な値が取得出来ないのは焦りました(笑)

物によるでしょうけどこのくらいは標準で対応して頂きたい物です。

*1:特別な文字 8000〜8999−特殊文字リファレンス