相关疑难解决方法(0)

正则表达式| 闰年等等

我最近一直在寻找一个正则表达式来做一些客户端日期检查,但我找不到一个能满足以下条件的表达式:

  • 范围从1800 - 现在
  • 使用闰年执行正确的日期检查
  • MM/DD/YYYY表格
  • 无效的日期检查

(这些限制超出了我的范围,并且是客户的要求,尽管我努力说服他们这不是最好的路线)

当前代码:

$('input').keyup(function()
{
       var regex = /^(?:(0[1-9]|1[012])[\/.](0[1-9]|[12][0-9]|3[01])[\/.](18|19|20)[0-9]{2})$/;
       $(this).toggleClass('invalid',!regex.test($(this).val()));    
});
Run Code Online (Sandbox Code Playgroud)

更新:

我应该注意,这主要是为了看看这样的正则表达式是否可行(因为在这个问题上使用正则表达式不是我的选择).我知道验证日期的其他(和更好的)选项,但是如前所述 - 这是通过正则表达式查看是否可能.

javascript regex datetime

11
推荐指数
3
解决办法
2万
查看次数

preg_match:检查生日格式(年/月/日)

如何使用检查生日输入的表达式匹配像dd/mm/yyyy这样的格式?以下是我到目前为止所发布的内容,但如果我把它放到99/99/9999那也需要这个!

if (!preg_match("/[0-9]{2}\/[0-9]{2}\/[0-9]{4}/", $cnt_birthday))
  {
   $error = true;
   echo '<error elementid="cnt_birthday" message="BIRTHDAY - Only this birthday format - dd/mm/yyyy - is accepted."/>';
  }
Run Code Online (Sandbox Code Playgroud)

如何确保dd仅为01到31,mm为01到12?但我相信如何限制yyyy ...我认为理论9999应该是可以接受的......如果你有更好的主意,请告诉我!

谢谢,刘

php regex preg-match

10
推荐指数
2
解决办法
6万
查看次数

将自定义回调添加到Codeigniter表单验证

我想用@ mywork.com限制我的电子邮件注册我在My_Form_validation中做了以下内容.

public function email_check($email)
    {
        $findme='mywork.com';
        $pos = strpos($email,$findme);
        if ($pos===FALSE)
        {
            $this->CI->form_validation->set_message('email_check', "The %s field does not have our email.");
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }
Run Code Online (Sandbox Code Playgroud)

我用它如下.我对用户名和密码使用CI规则,它适用于电子邮件,它接受任何电子邮件地址.任何我感谢任何帮助.

function register_form($container)
    {
....
....

/ Set Rules
$config = array(
...//for username
// for email            
    array(
  'field'=>'email',
  'label'=>$this->CI->lang->line('userlib_email'),
  'rules'=>"trim|required|max_length[254]|valid_email|callback_email_check|callback_spare_email"
   ),
...// for password
 );

$this->CI->form_validation->set_rules($config);
Run Code Online (Sandbox Code Playgroud)

php validation codeigniter

6
推荐指数
1
解决办法
3万
查看次数

验证日期dd/mm/yyyy

我有a的过去日期,textbox如果日期大于当前日期并且具有格式,我想验证表单提交dd/mm/yyyy.

在我的form_validation.php中:

'add_prod_serv_fact' => array(
    'quantidade_prod'           => array('field' => 'quantidade_prod',          'label' => 'Quantidade',        'rules' => 'required|trim|numeric|greater_than[0]|htmlspecialchars'),
    'desconto_prod'             => array('field' => 'desconto_prod',            'label' => 'Desconto',          'rules' => 'required|trim|numeric|greater_than[-1]|less_than[101]|htmlspecialchars'),
    'date'                      => array('field' => 'date',                     'label' => 'Date',              'rules' => 'required|trim|htmlspecialchars')
)
Run Code Online (Sandbox Code Playgroud)

如何验证日期?

php regex validation codeigniter date

4
推荐指数
1
解决办法
4654
查看次数

PHP preg_match与正则表达式工作

function validateDate( $date )
{ 
    echo $date;
    //2012-08-24 20:30:00
    if(preg_match('/^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([1-2]{1})([0-9]{1}):([0-5]{1})([0-9]{1}):([0-5]{1})([0-9]{1})$/', $date) >= 1)
    {
        return true;
    }
    else
    {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

这总是返回false.我使用了一个唯一的工具来构建正则表达式,它在那里工作得很好.当我将"/"添加到正则表达式时,麻烦就开始了.不知何故PHP似乎需要这些,但我不知道为什么,我不知道为什么它打破了我的正则表达式.

它应该返回TRUE for sth.像"2012-08-24 20:30:00"和"asdf2012-08-24 20:30:00asdf"或任何不符合我的正则表达式的任何错误

提前致谢!

-----------------------编辑感谢您的所有答案!

正如一些用户指出我的函数在样本日期"2012-08-24 20:30:00"返回true.但是,只有当我手动设置$ date ='2012-08-24 20:30:00'时才会这样做.如果我使用完全相同的字符串在我的代码中的其他地方调用该函数,则返回false.有谁知道为什么?

----------------------- EDIT2

对不起浪费你的时间,实际上是一些空格被添加到字符串中.在调用我的函数之前在我的日期使用trim()会给出正确的结果.

感谢大家!

php preg-match

1
推荐指数
1
解决办法
3210
查看次数

标签 统计

php ×4

regex ×3

codeigniter ×2

preg-match ×2

validation ×2

date ×1

datetime ×1

javascript ×1