2009-09-21 9 views
0

J'utilise un champ de date vérificateur, mais je veux changer le regex de JJ-MM-AAAA au JJ/MM/YYYY mais je ne peux pas sembler le faire fonctionner ..Expression régulière

Voici l'extrait de code:

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

Je suis sûr que c'est assez simple, mais je ne sais pas à propos regex .. J'ai essayé:

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

et

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

mais aucun d'entre eux travaillent pour moi ..

+1

Etes-vous sûr que vous partez d'un bon point connu? Il semble que votre regex d'origine, comme indiqué ci-dessus, ne correspondra même pas au DD-MM-YYYY parce que vous avez plusieurs antislashs supplémentaires. –

+1

@SoulieBaby - puisque vous validez sur le client, avez-vous considéré une interface qui n'a pas besoin de l'utilisateur pour entrer une chaîne entière du jour, mais plutôt seulement les composants individuels sans le séparateur? – karim79

+0

Je ne suis pas sûr lol je ne sais pas beaucoup sur l'ensemble de la chose regex .. pourrait avoir à jeter l'idée et utiliser un sélecteur de date à la place ..:/ – SoulieBaby

Répondre

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

J'ai essayé mais j'ai une erreur js: S – SoulieBaby

+0

Plus info s'il vous plaît - comme .. qu'avez-vous essayé? Avez-vous essayé mon code par lui-même ou avez-vous essayé de l'intégrer dans votre application? Question idiote, mais pourquoi votre regex est-elle entourée de citations? Un littéral regex n'a pas besoin d'être entouré de guillemets sauf si vous le créez dynamiquement avec un nouveau RegExp. –

+0

Ils sont tous entourés de guillemets, ils utilisent jquery.validationEngine.js – SoulieBaby

1

Ou:

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

Ou la pleine forme longue, ce qui pourrait vous aider à comprendre ce qui se passe:

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

Cela suppose que vous voulez exactement deux chiffres pour DD et MM et exactement quatre pour YYYY.