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