php - 使用 jquery 和 php 测试表单输入是否为 1 或 2 位整数

标签 php jquery validation integer

我的表单有五个字段,全部设置为 maxlength="2"。

基本上,我希望唯一可以输入的值是一位或两位整数,因为在将值存储到数据库之前对这些字段执行计算。

是否有任何 jquery 不允许用户输入不是整数的值?

另外,使用 jquery 和 php 验证这一点的最佳方法是什么?我已经找到了一些方法,但我需要确保其安全,避免使用字符、-2、.1 等

<小时/>

已解决

对于我使用的 php 部分

if(!ctype_digit($_POST['value']))

只允许正整数

对于 JavaScript

 $('.inputQuantity').keyup(function(){ 
    this.value = this.value.replace(/[^0-9\.]/g,'');
});

这会删除输入字段中的所有非数字条目。

以上两者都有效,尽管我认为有些人更喜欢使用 focusout(function() 而不是 keyup(function() ;)

最佳答案

在 PHP 中测试字符串是否只包含一位数字或两位数字,可以使用正则表达式来完成:

// $string is supposed to contain your data -- maybe obtained from $_POST['field_name']
if (preg_match('/^\d{1,2}$/', $string)) {
    // it's one or two digits
}

基本上,这测试:

  • 字符串开头:^
  • 数字:\d
    • 一两次:\d{1,2}
  • 字符串结尾:$


而且,在 Javascript 中,我想你可以使用相同的正则表达式:

// str is supposed to contain your data
if (/^\d{1,2}$/.test(str)) {
    // it's one or two digits
}

关于php - 使用 jquery 和 php 测试表单输入是否为 1 或 2 位整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512471/

相关文章:

jquery - jQuery-mobile 中的可折叠 ListView

javascript - AngularJS 仅在提交后验证 ng-invalid 类

javascript - 按类获取ID中的元素

jquery - 使用 'link_to' 和 jQuery 时遇到问题

html - Webkit 验证气泡的行为就像它在 Chrome 上的固定位置一样

javascript - Jquery 自定义验证无法正常工作

javascript - 每 1 秒调用 jQuery ajax 是否安全

php - Mysql数据库未连接

php - PHP循环抛出通知,这似乎是一个持续的错误

php - 多输入类型文件元素jquery ajax php mysql