0

次のようなJavascript関数があります。

function validateSessionName() {
  var session_name = document.getElementById('session_name').value;
  var submitButton = document.getElementById('submit');
  document.getElementById('session_error').innerHTML='';
  submitButton.removeAttribute('disabled');
  var filter = /^[A-Za-z0-9]+$/;
  if (filter.test(session_name)){
    return true;
  } else {
    document.getElementById('session_error').innerHTML="Invalid Session Name!";
    submitButton.setAttribute('disabled', 'disabled');
  }
}

これにより、数字と英数字のみがフォームに入力されていることが検証されます。ただし、セッション名が !@$#$#(%* で構成される場合があります。これらの文字はすべてキーボードで使用できます。アプリケーションでこれらの奇妙な文字を受け入れたくありません:アプリケーションがクラッシュしました.どうすればいいですか?ありがとう.

4

2 に答える 2

1

「英語キーボード」と「変な文字」が何を意味するかによります。

入力を ASCII 文字に制限することを考えているかもしれませんが、それでも null などの「奇妙な」文字や多数の制御文字を取得できます。おそらく、文字を ASCII の範囲 [32, 126] に制限するのが目的ですか? (これらはすべて、US キーボードで入力できる印刷可能な文字です。)

/^[\x20-\x7E]+$/

その正規表現に一致する文字は次のとおりです (先頭のスペースに注意してください)。

  ! " # $ % & ' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~
于 2013-06-11T05:23:10.713 に答える
0

https://blogs.oracle.com/shankar/entry/how_to_handle_utf_8

JavaScript文字列から無効なUTF-8文字を削除するには?

または、このようなものをグーグルで検索してください

于 2013-06-11T05:22:33.270 に答える