当用户在文本框中键入日期为 05/04 并按 Enter 键时,我正在使用以下代码检查它是否是日期。代码是
window.execScript("dim successReturn:successReturn=Isdate('" + ctl.value + "')","VBScript");
这适用于 IE,如果我输入 05/04 ,它会返回 true。但是该代码在其他浏览器中不起作用。请帮忙
当用户在文本框中键入日期为 05/04 并按 Enter 键时,我正在使用以下代码检查它是否是日期。代码是
window.execScript("dim successReturn:successReturn=Isdate('" + ctl.value + "')","VBScript");
这适用于 IE,如果我输入 05/04 ,它会返回 true。但是该代码在其他浏览器中不起作用。请帮忙
你可以试试下面的代码。
var comp = "05/04".split('/');
var d = parseInt(comp[0], 10);
var m = parseInt(comp[1], 10);
var date = new Date(null, m - 1, d);
var validDateFormat = false;
if (date.getMonth() + 1 == m && date.getDate() == d) {
validDateFormat = true;
}
如果日期正确,validDateFormat 将为真。请注意,上述代码中考虑了 dd/mm 格式。
window.execScript
是一种仅限 IE 的方法。Firefox、Safari 或 Opera 不支持它。Dottoro.com 声称 Chrome 支持,但它不再是真的(如果它曾经是的话)。另一个资源声称不支持除 IE4+ 之外的任何主要浏览器。MDN 声称不支持除 IE 之外的任何支持。
据我所知,除了 Internet Explorer 之外,没有任何其他浏览器可以执行 VBscript。当然,禁止执行解释的 javascript 库 - 但我也不知道这样的库。您必须将您的 VBscript 翻译或编译为 javascript。
关于您的代码,请参阅阿里手动解析日期的解决方案。