事の始まり
コピペした内容をテキストボックスに貼り付けて、
送信ボタン押下したら、処理が通らねぇ。
何が起こった
見えない文字がある。
コピペ元のHTMLソースを見ると​
なるものが。
​
調べると、ずらずらと記事が出てきます。
ゼロ幅スペース
なるものだそうです。
対応について
こんなものがたくさんあったら、対応仕切れないよぅ・・。
と思って調べていたら、
まとめてくださっていた方がいらっしゃいました!
\sが完全には空白文字を網羅できていなかった件
神かっ
要点をかいつまむと、
\s
で対応していないホワイトスペース文字がたくさんあるよ!
というわけで、二番煎じ感すごいですが、コードにします。
コードにする
正規表現のところだけ抜粋
export const unmanagedSpaces =
'\\u001c-\\u001f\\u11a3-\\u11a7\\u180e\\u200b-\\u200f\\u2060\\u3164\\u034f\\u202a-\\u202e\\u2061-\\u2063';
export const allSpaceRegexp = RegExp(`[\\s${unmanagedSpaces}]+`, 'g');
export default { unmanagedSpaces, allSpaceRegexp };
あとは煮るなり、焼くなり、replaceするなり。