检测用户输入是否包含JavaScript中的禁止字符
我有一个文本框,单击submit按钮后,它将在JavaScript中进行验证 只允许使用字符0-9、a-f和a-f 所以g-z和g-z以及其他字符,如标点符号或是不允许的 到目前为止,我掌握的代码是:检测用户输入是否包含JavaScript中的禁止字符,javascript,Javascript,我有一个文本框,单击submit按钮后,它将在JavaScript中进行验证 只允许使用字符0-9、a-f和a-f 所以g-z和g-z以及其他字符,如标点符号或是不允许的 到目前为止,我掌握的代码是: function validate_form ( ) { valid = true; if ( document.form.input.value == [a-zA-Z_,.:\|] ) { alert ( "You can only enter eith
function validate_form ( )
{
valid = true;
if ( document.form.input.value == [a-zA-Z_,.:\|] )
{
alert ( "You can only enter either 0-9 or A-F. Please try again." );
valid = false;
}
return valid;
}
这似乎不起作用
我不熟悉JavaScript,所以任何人都可以告诉我哪里出了问题吗?语法是
/^[a-zA-Z,.:\\\\;]+$/.test(document.form.input.value)
。请注意^
和$
:如果没有它们,即使字符串至少只有一个允许的字符,测试也会通过。语法是/^[a-zA-Z_389;,.:\\\\\\]+$/.test(document.form.input.value)
。请注意^
和$
:如果没有它们,即使字符串至少只有一个允许的字符,测试也会通过。验证的最佳方法是不要让用户输入错误的字符。使用以下代码(这是jQuery版本,但也可以轻松地将其转换为JavaScript):
这叫做预检查。请考虑你在客户端做的任何事情,你应该总是检查服务器上的值(有服务器端验证),因为周围有多个黑客,比如 < P>最好的验证方法是不让用户输入错误的字符。使用以下代码(这是jQuery版本,但也可以轻松地将其转换为JavaScript):
这叫做预检查。请考虑你在客户端做的任何事情,你应该总是检查服务器上的值(有服务器端验证),因为周围有多个黑客,比如 ,我们可以大量清理这个代码。无需跟踪
valid
,因为test()
将为我们提供所需的true
或false
值。在您的情况下,保留可接受字符的白名单比黑名单要容易得多。也就是说,我们知道我们想要的每个角色,但不可能指定我们不想要的每个角色
请注意,您也可以使用此功能进行预检查:
document.form.input.onkeyup = function() {
if (!validate_form()) {
alert("You can only enter either 0-9 or A-F. Please try again.");
}
};
实际上,我们可以清理很多代码。无需跟踪
valid
,因为test()
将为我们提供所需的true
或false
值。在您的情况下,保留可接受字符的白名单比黑名单要容易得多。也就是说,我们知道我们想要的每个角色,但不可能指定我们不想要的每个角色
请注意,您也可以使用此功能进行预检查:
document.form.input.onkeyup = function() {
if (!validate_form()) {
alert("You can only enter either 0-9 or A-F. Please try again.");
}
};
你可以这样做
$('input').keyup(function(){
var charac = /[g-zG-Z;:,.|_]/;
var result = charac.test($(this).val());
if(result == true){
alert('You can only enter either 0-9 or A-F. Please try again.');
}
})
你可以这样做
$('input').keyup(function(){
var charac = /[g-zG-Z;:,.|_]/;
var result = charac.test($(this).val());
if(result == true){
alert('You can only enter either 0-9 or A-F. Please try again.');
}
})
document.form.input.value==[a-zA-Z,.:\\\\\124;]
不是有效的JS语法。阅读关于正则表达式的文章:为每个坏字符弹出一个警报会非常烦人。最好使用错误消息来取消隐藏div或其他内容。document.form.input.value==[a-zA-Z.:\\\124;]
不是有效的JS语法。阅读关于正则表达式的文章:为每个坏字符弹出一个警报会非常烦人。最好是取消隐藏一个div或带有错误消息的内容。