2016-09-20 16 views
1

ユーザーが自分のフォームを送信できるようにタブレットまたはモバイルユーザーが絵文字をinput type="text"フィールドに入力するのを止める方法を知っておく必要がありますが、中間層にエラーが発生します四角形として私のDBにも書き込みます。絵文字を入力フィールドに入力する

Googleでは解決策が見つかるようですが、ここで質問してください。

何かのHTML属性がありますか?

+0

(テキストエリアに入力され、テストされていない)あなたも 'utf8_unicode_bin'同等のエンコーディングを使用することができますし、あなたのDBがうまく絵文字を扱うことができるようになりますあなたのデータベースバックエンドによっては。 (あなたが1バイト長であると仮定しない限り) – Kris

+0

@Kris私はemojisをまったく欲しません。 – murday1983

+0

おそらく、中国語、日本語、ハングル、アラビア語などの他のユニコードの利点があるかもしれません。 – Kris

答えて

1

エンコードを変更してデータベースを互換性のあるものにすることをお勧めします。

つまり、テキストフィールドのすべての文字をループして、序数が32と255の間であることを確認できます。これにより、印刷可能なASCII文字のみを許可するようになります。このような

何か:

function stripNonAscii(input) { 
    let output = ''; 
    for (var i = 0; i < input.length; i++) { 
     let c = input.charCodeAt(i); 
     if(c >= 32 && c <= 255) { 
      output += input.substring(i, 1); 
     } 
    } 
    return output; 
} 
+0

これは正解です。また、フォーム処理中にバックエンドを再度チェックする必要があります。 – eosrei

関連する問題