我需要dd/mm/yyyy使用常规表达来验证格式的日期字符串.
此正则表达式验证dd/mm/yyyy,但不是无效日期,如31/02/4500:
^(0?[1-9]|[12][0-9]|3[01])[\/\-](0?[1-9]|1[012])[\/\-]\d{4}$
Run Code Online (Sandbox Code Playgroud)
dd/mm/yyyy使用闰年支持验证格式的有效正则表达式是什么?
我想使用格式验证输入的日期格式mm/dd/yyyy.
我在一个站点中找到了以下代码然后使用它但它不起作用:
function isDate(ExpiryDate) {
var objDate, // date object initialized from the ExpiryDate string
mSeconds, // ExpiryDate in milliseconds
day, // day
month, // month
year; // year
// date length should be 10 characters (no more no less)
if (ExpiryDate.length !== 10) {
return false;
}
// third and sixth character should be '/'
if (ExpiryDate.substring(2, 3) !== '/' || ExpiryDate.substring(5, 6) !== '/') {
return false;
}
// extract month, day and year …Run Code Online (Sandbox Code Playgroud) 我希望能够在从字符串创建新日期时输入英国格式的日期,这将适用于所有现代浏览器,但主要是 FireFox 和 IE。
new Date('24/06/2014') // Gives 06/24/2014
Run Code Online (Sandbox Code Playgroud)
因为我想使用它设置一个 jquery datepicker。
是否有可能获得
new Date()
Run Code Online (Sandbox Code Playgroud)
解释作为字符串传递的英国日期?
new Date('24/06/2014').toLocaleString("en-GB") // Gives 06/12/2015
new Date('06/24/2014').toLocaleString("en-GB") // Gives 24/06/2014
Run Code Online (Sandbox Code Playgroud)
真正的问题是当我使用日期选择器时,我指定了英国日期格式,一切都很好......
$("#outOfStockFromDate").datepicker({
dateFormat: 'dd/mm/yy',
changeMonth: true,
numberOfMonths: 3,
onClose: function (selectedDate) {
$("#to").datepicker("option", "minDate", selectedDate);
}});
Run Code Online (Sandbox Code Playgroud)
直到我尝试使用这种英国日期格式重新填充日期选择器,例如...
$("#outOfStockFromDate").datepicker("setDate", testDate);
Run Code Online (Sandbox Code Playgroud)
就好像字符串 'testDate' 必须是美国格式... grrr
编辑:我意识到这个问题有两部分,第一部分处理日期选择器;我在尝试 setDate 的同时初始化它是我的愚蠢错误(这个错误使我沿着 Date() 路线走下去)。现在我已经初始化并正确更改它接受英国格式日期!
第二部分是的,javascript 中关于格式化日期的日期功能(现在我知道)是出了名的缺乏......但是当我解决了我最初的问题时,我不关心这个...... PS我最终分裂并重建了美国日期格式(字符串)中的日期,然后使用新日期(USDateFormattedString)......然后我意识到!
所以最后,基本上我的代码在语法上是正确的,但在执行时却不是。
感谢所有回答的人!+1