Ποτέ δεν ήμουν καλός με τα REGEX

Κώδικας, πληροφορίες, ερωτήσεις και απαντήσεις σχετικές με την JavaScript.

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από ThyClub » 11 Ιαν 2008 10:07

Γειά σας.
Χρειάζομαι ενα REGEX που να ελέγχει ενα πεδίο (email). Θα γίνονται οι παρακάτω έλεγχοι:

1. Το email θα πρέπει να περιλαμβάνει τον χαρακτήρα "@"
2. Το email θα πρέπει να περιλαμβάνει τον χαρακτήρα "."
3. Ο χαρακτήρας "@" δεν πρέπει να είναι ο πρώτος ούτε ο τελευταίος του email
4. Ο χαρακτήρας "@" θα πρέπει να εμφανίζεται μόνο μια φορά
5. Οι χαρακτήρες "@" και "." δεν πρέπει να είναι συνεχόμενοι.
6. Ο χαρακτήρας "." θα πρέπει να εμφανίζεται τουλάχιστον μια φορά σε απόσταση τουλάχιστον 2 χαρακτήρων μετά απο το "@".
7. Το email δεν θα πρέπει να περιλαμβάνει κενά.

Γίνεται και με την sub το παραπάνω?

Thnx btw :wink:

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3194
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από CyberCr33p » 11 Ιαν 2008 11:36

Δοκίμασε αυτό:

Κώδικας: Επιλογή όλων

^[a-z0-9]+@[a-z0-9.-]+\.[a-z]{2,4}$

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από ThyClub » 11 Ιαν 2008 11:44

Το 5 και το 6 δεν δουλεύουν. Πχ τα email:

dssd@.fc.com
dssd@l.com

περνάνε.


EDIT:

Κώδικας: Επιλογή όλων

^[a-z0-9]+@[a-z0-9]+\.[a-z]{2,4}$
Μ αυτό το dssd@.fc.com δεν περνάει αλλά περνάει το dssd@l.com

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3194
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από CyberCr33p » 11 Ιαν 2008 11:55

Δοκίμασε αυτό:

Κώδικας: Επιλογή όλων

^[a-z0-9]+@[a-z0-9-]{2,15}+\.[a-z]{2,4}$

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από ThyClub » 11 Ιαν 2008 12:05

Μ αυτό δεν δουλεύει καθόλου. :(

Άβαταρ μέλους
CyberCr33p
Honorary Member
Δημοσιεύσεις: 3194
Εγγραφή: 06 Νοέμ 1999 01:00
Τοποθεσία: Αθήνα
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από CyberCr33p » 11 Ιαν 2008 12:09

Θα το κοιτάξω ξανά πιο μετά γιατί αυτή τη στιγμή αυτά που σου έγραψα δεν είχα τη δυνατότητα να τα ελέγξω.

Άβαταρ μέλους
dik_
Δημοσιεύσεις: 476
Εγγραφή: 07 Ιουν 2007 11:28

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από dik_ » 11 Ιαν 2008 12:45

Κώδικας: Επιλογή όλων

^[a-z0-9]+@[a-z0-9]{2,}[a-z0-9\.]*?\.[a-z]{2,4}$

Άβαταρ μέλους
Banavas
Script Master
Δημοσιεύσεις: 1367
Εγγραφή: 21 Νοέμ 2004 20:25
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από Banavas » 11 Ιαν 2008 12:51

δοκίμασε αυτό

^[_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,4}$
Happy coding....
Μάρκος
http://lasernet.gr

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από cherouvim » 11 Ιαν 2008 13:30

Αν και Java, ρίξε μία ματιά εδώ: http://www.leshazlewood.com/?p=5

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από ThyClub » 11 Ιαν 2008 14:18

Σας ευχαριστώ όλους. Το εκανα με άλλο τρόπο. Χρησιμοποίησα τις :

indexOf, substring, charAt και ολα πήγαν μέλι γάλα. Υπόψην δεν ήταν για επαγγελματική φόρμα ;)

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

Ποτέ δεν ήμουν καλός με τα REGEX

Δημοσίευση από skeftomilos » 11 Ιαν 2008 19:26

1. Το email θα πρέπει να περιλαμβάνει τον χαρακτήρα "@"
s.match(/@/)

2. Το email θα πρέπει να περιλαμβάνει τον χαρακτήρα "."
s.match(/\./)

3. Ο χαρακτήρας "@" δεν πρέπει να είναι ο πρώτος ούτε ο τελευταίος του email
!s.match(/^@|@$/)

4. Ο χαρακτήρας "@" θα πρέπει να εμφανίζεται μόνο μια φορά
!s.match(/@.*@/)

5. Οι χαρακτήρες "@" και "." δεν πρέπει να είναι συνεχόμενοι.
!s.match(/@\./)

6. Ο χαρακτήρας "." θα πρέπει να εμφανίζεται τουλάχιστον μια φορά σε απόσταση τουλάχιστον 2 χαρακτήρων μετά απο το "@".
s.match(/@[^\.]{2,}\./)

7. Το email δεν θα πρέπει να περιλαμβάνει κενά.
!s.match(/\s/)

Όλα μαζί:

Κώδικας: Επιλογή όλων

var s = 'conor@macleod.com'
var valid = !!(s.match(/@/) && s.match(/\./) && !s.match(/^@|@$/) && !s.match(/@.*@/) && !s.match(/@\./) && s.match(/@[^\.]{2,}\./) && !s.match(/\s/))
ΚάΠοτε δεν ήμουν καλός με τα REGEX :-)

Απάντηση

Επιστροφή στο “JavaScript και Frameworks”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης