接受仅使用Javascript在英语关键字上提供的字符

时间:2013-06-11 05:16:46

标签: javascript

我有一个像这样的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');
  }
}

这验证了表格中只输入了数字和字母数字字符。但是,可能存在会话名称可以包含的情况!@ $#$#(%*。所有这些字符都可以在键盘上使用。我不希望我的应用程序接受这些奇怪的字符:工具,这使得我的申请崩溃了。我怎么能这样做?谢谢。

2 个答案:

答案 0 :(得分:1)

这取决于你所说的“英文键盘”和“奇怪的人物”。

您可能正在考虑将输入限制为ASCII字符,但即使这样,您也可以获得“怪异”字符(如null)和一系列控制字符。也许将字符限制在ASCII范围[32,126]是你所追求的? (这些都是可以在美国键盘上输入的可打印字符。)

/^[\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 { | } ~

答案 1 :(得分:0)