I am using PHP's magic __set
and __get
methods to access a private array in a class. Use of the class can include "setting" new properties as well as using existing ones. I want to make sure the property names created or requested (i.e. $myObj->FakeProperty
) are valid according to the following rules:
- Property names must begin with either a letter or underscore [A-z_]
- If it begins with an underscore, it must be followed by a letter
- So long as the first two rules are met, the name may contain any of [A-z0-9_]
My current RegEx isn't doing the trick; with my test values, _12
always falls through the cracks.
Test Fields:
albert12
12Albert
_12
_Albert12
_12Albert
_____a_1
RegEx:
^(?=_*[A-z]+)[A-z0-9_]+$