WdatePicker 无效日期或者超出范围

简介: /* * My97 DatePicker 4.8 Beta4 * License: http://www.my97.net/dp/license.
/*
 * My97 DatePicker 4.8 Beta4
 * License: http://www.my97.net/dp/license.asp
 */


    近期开发项目时用到了DatePicker 这个日历控件,首先不说这个控件的好坏,只谈遇到的问题和解决方案


其实遇到的问题主要是报错为:无效日期或者超出范围(翻译之后的)




<input type="text" name="rili" id="txtDate" onclick="datePicker()" value="Sep 28, 2017">


<script type="text/javascript">
   function datePicker(){
       WdatePicker(
            {
                startDate: '%y-%M-%d',
                readOnly: true,
                isShowClear: false,
                doubleCalendar: true,
                minDate: '%y-%M-{%d}',
                lang: 'en-US',
                dateFmt:"MMM dd,yyyy",
            });
}
</script>


然后程序运行,点击input正常弹出日历,然后点击除日历界面的其它位置,立马报错
然后点击取消弹窗,点击日历里面的日期,重复操作一切OK了!!!
神马情况??


然后就是陷入苦不堪言的调试阶段了,说多了都是泪
再当我即将奔溃的时候,发现一个一个很有趣的地方,那就是导致报错的原因是因为,日期被默认为32了,一个月最多31天。。。。
好吧,终于有点眉目了,往上推发现在做日期正则的时候,格式匹配错误,值为null (因为没有买源码,所以都是在压缩代码下进行调试的)
将正则单独取出来 ("^ (\d\d?), (\d{4}).*$"),然后带入value值发现真的是没有匹配成功
进过尝试,发现改变正则里面的空格会匹配成功,好吧貌似看到春天了
然后我单独把正则和value值的空格ascii码打印出来发现 一个是32,一个是160   (感觉逆天了)


最简单的解决方案就是将Value里面的空格替换为160的空格了


问题:看代码发现正则里面的空格也是从Valuel里面获取的,为什么会变成160呢? 希望谁了解的能告知一下,万分感谢!
目录
相关文章
|
6月前
30.输入年月日,判断它是该年的第多少天
30.输入年月日,判断它是该年的第多少天
48 5
|
6月前
给input框设置成选择日期,并且精确到时分秒
给input框设置成选择日期,并且精确到时分秒
191 1
|
6月前
|
前端开发
输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false
输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false
36 0
|
6月前
|
数据采集 数据挖掘 数据管理
如何发现和解决无效数据?
如何发现和解决无效数据?
84 2
|
6月前
|
Linux C++ iOS开发
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
C++类相关oj题目分享(计算日期到天数转换、日期差值、打印日期、日期累加)
97 0
|
SQL
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
324 0
|
C#
C# 两个DataGridView设置时间范围,开始日期小于结束日期
C# 两个DataGridView设置时间范围,开始日期小于结束日期
103 0
|
Python
判断某一年的某个月的天数
判断某一年的某个月的天数
92 0
|
存储 数据库
长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?
长整数在插入较短的列时会被转换,但不会被截断为什么?公式是什么?
用户输入学号,如果是以aabcddef开头,并且后边是4位数字,前两位大于06小于等于当前年份。判断用户输入是否合法
用户输入学号,如果是以aabcddef开头,并且后边是4位数字,前两位大于06小于等于当前年份。判断用户输入是否合法
110 0