Regex με Ελληνικούς χαρακτήρες

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

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

Απάντηση
Άβαταρ μέλους
webdevgr
Δημοσιεύσεις: 697
Εγγραφή: 11 Δεκ 2010 17:25
Τοποθεσία: Ηράκλειο
Επικοινωνία:

Regex με Ελληνικούς χαρακτήρες

Δημοσίευση από webdevgr » 07 Απρ 2015 20:20

Καλησπέρα

Έχω μια φόρμα που σε ένα πεδίο θέλω να καταχωρούνται μόνο γράμματα (Ελληνικά-Λατινικά) αριθμοί τελείες και παύλες.

Ο πρώτος έλεγχος με javascript δουλεύει άψογα, θέλω όμως να υπάρχει και δεύτερο έλεγχος με php πριν την καταχώρηση στη βάση.

Κι εδώ αρχίζουν τα παράξενα... δέχεται μόνο τα πρώτα 15 γράμματα του αλφαβήτου. Δηλαδή τα αβγδεζηθικλμνξο... οτιδήποτε βάλω από το π και μετά (πρστυφχψω) δεν το δέχεται.

Έχει κανείς καμιά ιδέα γιατί έχουν παίξει τα νεύρα μου και θόλωσε το μυαλό μου :)

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Regex με Ελληνικούς χαρακτήρες

Δημοσίευση από gvre » 08 Απρ 2015 08:58

Ποιο είναι το pattern που χρησιμοποιείς;

Άβαταρ μέλους
webdevgr
Δημοσιεύσεις: 697
Εγγραφή: 11 Δεκ 2010 17:25
Τοποθεσία: Ηράκλειο
Επικοινωνία:

Regex με Ελληνικούς χαρακτήρες

Δημοσίευση από webdevgr » 08 Απρ 2015 09:12

Κανονικά έπρεπε να παίζει αυτό:

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

^(?!:\/\/)([a-zα-ω0-9-]+\.)?[a-zα-ω0-9-][a-zα-ω0-9-]+\.[a-z]{2,20}?$
και εχθές το άλλαξα για να μπορέσω να κάνω την δουλειά μου προσωρινά μέχρι να βρω τι φταίει

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

^(?!:\/\/)([αβγδεζηθικλμνξοπρστυφχψωάέίήόύώςa-z0-9-]+\.)?[αβγδεζηθικλμνξοπρστυφχψωάέίήόύώςa-z0-9-][αβγδεζηθικλμνξοπρστυφχψωάέίήόύώςa-z0-9-]+\.[a-z]{2,20}?$

gvre
Δημοσιεύσεις: 990
Εγγραφή: 14 Οκτ 2010 11:34
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

Regex με Ελληνικούς χαρακτήρες

Δημοσίευση από gvre » 08 Απρ 2015 09:41

Για να παίξει σωστά το regex με utf8 χρειάζεται και τον u modifier (/u), τον οποίο δεν ξέρω αν έχεις συμπεριλάβει στο pattern. Επίσης, είναι προτιμότερο να αντικαταστήσεις το α-ω με \p{Greek}

Άβαταρ μέλους
giannis17
Honorary Member
Δημοσιεύσεις: 1215
Εγγραφή: 06 Ιαν 2005 19:50
Τοποθεσία: Παγκράτι - Αθήνα
Επικοινωνία:

Regex με Ελληνικούς χαρακτήρες

Δημοσίευση από giannis17 » 10 Απρ 2015 08:05

αντί για τα γράμματα χρησιμοποίησε το unicode hex με αυτή τη μορφή

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

 α = /\x{03B1}/u 
μπορείς να δεις όλα τα hex για τα ελληνικά εδώ: http://www.w3schools.com/charsets/ref_utf_greek.asp
"There is only one problem with common sense; it’s not very common."
– Milt Bryce

Άβαταρ μέλους
Alice_Cooper
Δημοσιεύσεις: 1947
Εγγραφή: 11 Μάιος 2007 00:33
Τοποθεσία: Ioannina
Επικοινωνία:

Regex με Ελληνικούς χαρακτήρες

Δημοσίευση από Alice_Cooper » 02 Μάιος 2015 13:28

vasika ki ego me tin lysh tou gvre to eixa lysei

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

/^[A-Za-z\p{Greek}]++/u

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

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

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