I need a regular expression that accepts only Greek chars and spaces for a name field in my form (PHP). I\'ve tried several findings on the net but no luck. Any help will be
To elaborate on leo pal's answer, an even more complete regex, which would accept even capital accented Greek characters, would be the following:
/^[α-ωΑ-ΩίϊΐόάέύϋΰήώΊΪΌΆΈΎΫΉΏ\s]+$/
With this, you get:
α-ω
- lowercase lettersΑ-Ω
- uppercase lettersίϊΐόάέύϋΰήώ
- lowercase letters with all (modern) diacriticsΊΪΌΆΈΎΫΉΏ
- uppercase letters with all (modern) diacritics\s
- any whitespace characterNote: The above does not take into account ancient Greek diacritics (ᾶ, ἀ, etc.).
The modern Greek alphabet in UTF-8 is in the U+0386 - U+03CE range.
So the regex you need to accept Greek only characters is:
$regex_gr = '/^[\x{0386}-\x{03CE}]+$/u';
or (with spaces)
$regex_gr_with_spaces = '/^[\x{0386}-\x{03CE}\s]+$/u';
The other answers here didn't work for me. Greek Unicode characters are included in the following two blocks
The following regex matches whole Greek words:
[\u0370-\u03ff\u1f00-\u1fff]+
I will let the reader translate that to whichever programming language format they may be using.
Full letters solution, with accented letters:
/^[A-Za-zΑ-Ωα-ωίϊΐόάέύϋΰήώ]+$/
Greek & Coptic in utf-8 seem to be in the U+0370 - U+03FF range. Be aware: a space, a -
, a .
etc. are not....
What worked for me was /^[a-zA-Z\p{Greek}]+$/u
source: http://php.net/manual/fr/function.preg-match.php#105324