Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Java脚本验证符号%不能出现在文本字段中_Javascript - Fatal编程技术网

Javascript Java脚本验证符号%不能出现在文本字段中

Javascript Java脚本验证符号%不能出现在文本字段中,javascript,Javascript,我在用javascript工作。我想在我的文本字段中添加只允许使用字符的验证 除了字符外,我还允许使用带有键码37的左箭头键。但这造成了问题,因为%的键码也是37。我不想允许%symbol 请告诉我如何区分%键和左箭头键,因为两个键的代码都是37?不要限制按键验证。人们可以通过复制/粘贴来克服这一问题 你需要使用正则表达式来验证你的输入 从了解更多信息不要限制按键进行验证。人们可以通过复制/粘贴来克服这一问题 你需要使用正则表达式来验证你的输入 从了解更多信息如果按“百分比”键,字符代码为37,

我在用javascript工作。我想在我的文本字段中添加只允许使用字符的验证

除了字符外,我还允许使用带有键码37的左箭头键。但这造成了问题,因为%的键码也是37。我不想允许%symbol


请告诉我如何区分%键和左箭头键,因为两个键的代码都是37?

不要限制按键验证。人们可以通过复制/粘贴来克服这一问题

你需要使用正则表达式来验证你的输入


了解更多信息不要限制按键进行验证。人们可以通过复制/粘贴来克服这一问题

你需要使用正则表达式来验证你的输入


了解更多信息如果按“百分比”键,字符代码为37,按“左箭头”键,字符代码不是37;e、 g:

$('#test').keypress(function(oEvent) {
    if (oEvent.charCode == 37) {
        return false;
    }
});
也看到这个

==更新===

有关internet explorer的其他支持:

$('#test').keypress(function(oEvent) {
    var iCode = typeof oEvent.charCode == 'number' ? oEvent.charCode : oEvent.keyCode;
    if (iCode == 37) {
        return false;
    }
});

另请参见此图。

如果按“百分比”键,字符代码为37,而按“左箭头”键,字符代码不是37;e、 g:

$('#test').keypress(function(oEvent) {
    if (oEvent.charCode == 37) {
        return false;
    }
});
也看到这个

==更新===

有关internet explorer的其他支持:

$('#test').keypress(function(oEvent) {
    var iCode = typeof oEvent.charCode == 'number' ? oEvent.charCode : oEvent.keyCode;
    if (iCode == 37) {
        return false;
    }
});

另请参见此图。

用户提交表单后,您应该验证用户输入。您可以编写一个函数,使表单的“onsubmit”属性在数据提交到服务器之前运行,或者您可以将表单操作设置为“action='javascript:someFunction()”,无论哪种方式都可以。不允许击键会使最终用户的用户界面更加复杂和麻烦,并对xss或注入攻击造成安全风险。我建议使用javascript检查用户输入,如果无效,则返回错误消息,然后在服务器端再次验证数据,并清理数据。

用户提交表单后,您应该验证用户输入。您可以编写一个函数,使表单的“onsubmit”属性在数据提交到服务器之前运行,或者您可以将表单操作设置为“action='javascript:someFunction()”,无论哪种方式都可以。不允许击键会使最终用户的用户界面更加复杂和麻烦,并对xss或注入攻击造成安全风险。我建议使用javascript检查用户输入,如果输入无效,则返回错误消息,然后在服务器端再次验证数据,并清理数据。

看起来您正在尝试清理输入以生成SQL。我不是说你不知道,只是一个友好的提醒——在服务器端也应用同样的逻辑。你说的“仅字符”是什么意思?“%”是一个字符。你的意思是“仅字母数字字符”还是什么?是的,我的意思是字母数字字符。看起来你正在尝试为SQL生成目的清理输入。我不是说你不知道,只是一个友好的提醒——在服务器端也应用同样的逻辑。你说的“仅字符”是什么意思?“%”是一个字符。你是说“只有字母数字字符”还是什么?是的,我的意思是说字母数字字符。我同意防止击键会使UI更麻烦,但为什么你认为这会带来安全风险?如果这是验证数据的唯一方法,javascript有几种提交无效数据的方法。无论您如何在客户端验证(或不验证),您都必须在服务器上验证,但与验证提交时的验证相比,防止击键又有什么关系呢?我同意防止击键会使UI更麻烦,但是为什么您认为它会带来安全风险?如果这是验证数据的唯一方法,那么javascript有几种方法可以提交无效数据。您必须始终在服务器上进行验证,而不管您如何(或不)在客户端进行验证,但是与在Submit上验证相比,这与防止击键有什么关系呢?键盘验证的替代方法不是regex,而是onchange、onblur和/或onsubmit。(当然,您可以在更改/提交验证中使用regex,但不必如此。)按键验证的替代方法不是regex,而是onchange、onblur和/或onsubmit。(当然,您可以在更改/提交验证中使用正则表达式,但不必如此。)