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呢? 希望谁了解的能告知一下,万分感谢!
目录
相关文章
|
7月前
30.输入年月日,判断它是该年的第多少天
30.输入年月日,判断它是该年的第多少天
51 5
|
7月前
给input框设置成选择日期,并且精确到时分秒
给input框设置成选择日期,并且精确到时分秒
224 1
|
7月前
|
前端开发
输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false
输入两个时间,判断时间是否为非工作日,并且是日期否为同一天。是的话返回true,否返回false
41 0
|
SQL
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
解决SQLServerException: 转换 varchar 值 '12345678901' 时溢出了整数列的bug
337 0
空字符串用equals比较的时间和==(等等于)比较的时间哪个更快
空字符串用equals比较的时间和==(等等于)比较的时间哪个更快
|
C#
C# 两个DataGridView设置时间范围,开始日期小于结束日期
C# 两个DataGridView设置时间范围,开始日期小于结束日期
110 0
|
Python
判断某一年的某个月的天数
判断某一年的某个月的天数
95 0
|
Python
一日一技:字符串format忽略缺失的字段
一日一技:字符串format忽略缺失的字段
90 0
|
存储 SQL 前端开发
日期居然用字符串保存?我笑了
以下,我会从时区的概念来跟你们解释一下,为什么用数值保存时间戳是最好的方案,同时也为了分享出来,让更多开发小伙伴留意这些细节性的东西。 相信时区对于很多人来说的很熟悉,因为地球是圆的,在地球上不同角落看到的太阳上升的角度都是不同的,即每个人对于时间的显示都是不一样的,
180 0