使用Javascript仅接受英文关键字上可用的字符

使用Javascript仅接受英文关键字上可用的字符,javascript,Javascript,我有一个Javascript函数,如下所示: function validateSessionName() { var session_name = document.getElementById('session_name').value; var submitButton = document.getElementById('submit'); document.getElementById('session_error').innerHTML=''; submitButto

我有一个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');
  }
}
这将验证表单中只输入数字和字母数字字符。但是,在某些情况下,会话名称可能包含@$#$#(%*。所有这些字符都可以在键盘上使用。我不希望我的应用程序接受这些奇怪的字符:工具, 这使我的应用程序崩溃。我该怎么做?谢谢。


或者用谷歌搜索一些类似的东西,这取决于你所说的“英语键盘”和“奇怪的字符”是什么意思

您可能正在考虑将输入限制为ASCII字符,但即使这样,您也可以获得“奇怪”字符,如null和大量控制字符。也许您想要的是将字符限制为ASCII范围[32226]。(这些都是可以在美国键盘上输入的可打印字符。)

与该正则表达式匹配的字符是(请注意前导空格):

!“$%&'()*+,-./0123456789:;<=>?@abcdefghjklm N O P Q R S tuv W X Y Z[\]^ abcdefghjklm N O P Q R S tuv W X Y Z{124;~

更有用的策略是,当应用程序遇到意外字符时,不要使其崩溃……如果用户输入导致应用程序崩溃,则应修复应用程序,而不是输入。
/^[\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 { | } ~