Using PHP I want to check that a string contains only alphabetic characters (I do not want to allow any numerals or special characters like !@#$%^&*). ctype_alpha()
would seem great for this purpose.
The problem is that I want to allow accented letters, such as found in French, etc. For example, I want to allow "Lórien".
I know that ctype_alpha()
can be used with set_locale()
, but that still seems too limited for this use case, since I want to allow characters from all latin-based languages.
Any ideas how best to accomplish this?
Note: The solution posted at How can I detect non-western characters? is great for explicitly detecting non-Latin characters, but it allows special characters and white space, which I do not want to allow:
preg_match('/[^\\p{Common}\\p{Latin}]/u', $string)
I want something that would work like this, but limit the allowed characters to alphabetic characters (so no special characters like !@#$%^&).
How about this regex:
^\p{Latin}+$
Working regex example:
https://regex101.com/r/I5b2mC/1
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With