2013-04-12 3 views
0

Когда пользователь вводит дату 05/04 в текстовое поле и нажимает enter, я использую следующий код, чтобы проверить, является ли это датой. И кодIsdate javascript code

window.execScript("dim successReturn:successReturn=Isdate('" + ctl.value + "')","VBScript"); 

Это нормально работает для IE, если я вхожу 05/04, он возвращается как истинный. Но код не работает в других браузерах. Пожалуйста, помогите

ответ

2

Вы можете попробовать следующий код.

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 учитывается в приведенном выше коде.

+0

'x = false; if (y) {x = true}; 'может быть упрощено до' x = y' или (если вам нужно перевести на boolean) 'x = !! y'. –

1

window.execScript - это только IE-метод. Он не поддерживается в Firefox, Safari или Opera. Dottoro.com заявляет о поддержке Chrome, но это уже не так (если это когда-либо было). Another resource не поддерживает никакой поддержки ни от одного из основных браузеров, кроме IE4 +. MDN не поддерживает поддержку, кроме IE.

Насколько я знаю, существует no Способ выполнения VBscript любым другим браузером, кроме Internet Explorer. Конечно, запретить библиотеки javascript, которые выполняют интерпретацию, но я тоже не знаю таких библиотек. Вам нужно будет перевести или скомпилировать ваш VBscript в javascript.

Что касается вашего кода, см. Ali's solution разбора даты вручную.

+0

Спасибо за вашу очень ценную информацию. :) – Perseus