シングルクォーテーションだけ入力チェックが正しく動かない
inputタグへの入力文字の制御を行なっていて、PCブラウザやAndroidでは上手くいくのに、iOSだけシングルクォーテーションがうまくいかずハマりました。
keydownイベントでは問題ない
keydownイベントのevent.keyを確認しましたが文字コード0x27「'」で問題なく処理されます。
inputイベントに問題あり
event.target.valueをログ出ししていて、文字コードが0x27「'」でないことに気付きました。
入力の一文字目は\u2018「‘」、二文字目以降は\u2019「’」に勝手に変換されるようです。
下記のコードで変換かけてあげて回避できました。
event.target.value = event.target.value.replace(/[\u2018\u2019]/g, '\'');