2009-09-21 2 views
0

Я использую поле даты проверки, но я хочу, чтобы изменить регулярное выражение из DD-MM-YYYY до ДД/ММ/ГГГГ, но я не могу заставить его работать ..Дата Regular Expression

Вот фрагмент кода:

"date": { 
    "regex": "/^[0-9]{1,2}\-\[0-9]{1,2}\-\[0-9]{4}$/", 
    "alertText": "* Invalid date, must be in DD/MM/YYYY format" 
}, 

Я уверен, что это довольно простой, но я понятия не имею, о регулярных выражениях .. Я пробовал:

/^[0-9]{1,2}\/\[0-9]{1,2}\/\[0-9]{4}$/ 

и

/^[0-9]{1,2}\\/\\[0-9]{1,2}\\/\\[0-9]{4}$/ 

, но ни один из них работает для меня ..

+1

Вы уверены, что начинаете с известной точки? Похоже, что ваше исходное регулярное выражение, как указано выше, даже не будет соответствовать DD-MM-YYYY, потому что у вас есть еще несколько дополнительных обратных косых черт. –

+1

@SoulieBaby - поскольку вы проверяете на клиенте, считаете ли вы интерфейс, который не требует от пользователя ввода целой строки дня, а скорее только отдельных компонентов без разделителя? – karim79

+0

Я не уверен, что lol Я не знаю много о всей вещи регулярного выражения .. возможно, придется отказаться от идеи и использовать выбор даты вместо.:/ – SoulieBaby

ответ

3
o = 

{ 

    "date": { 
     "regex": /^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}$/, 
     "alertText": "* Invalid date, must be in DD/MM/YYYY format" 
    } 

} 

o.date['regex'].test('02/12/2008')//true 
o.date['regex'].test('2009-02-02')// false 
o.date['regex'].test('03-04-2009')// false 
+0

Я пробовал, но я получаю ошибку js: S – SoulieBaby

+0

Подробнее info пожалуйста - как .. что вы пробовали? Вы сами пробовали мой код или пытались встроить его в свое приложение? Глупый вопрос, но почему ваше регулярное выражение обернуто кавычками? Литерал регулярного выражения не обязательно должен быть заключен в кавычки, если вы не динамически создаете его с помощью нового RegExp. –

+0

Все они заключены в кавычки, используя jquery.validationEngine.js – SoulieBaby

1

Или:

/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/ 

Или полная длинная форма, которая может помочь вам понять, что происходит:

/^[0-9][0-9]\/[0-9][0-9]\/[0-9][0-9][0-9][0-9]$/ 

Предполагается, что вы хотите точно две цифры для DD и MM и ровно четыре для ГГГГ.