Я пытался проверить, начинается ли строковое значение с числового значения или пробела, и действовать соответствующим образом, но, похоже, оно не работает.Вот мой код:
private static function ParseGamertag( $gamertag )
{
$safetag = preg_replace( "/[^a-zA-Z0-9\s]+/", "", $gamertag ); // Remove all illegal characters : works
$safetag = preg_replace( "/[\s]+/", "\s", $safetag ); // Replace all 1 or more space characters with only 1 space : works
$safetag = preg_replace( "/\s/", "%20", $safetag ); // Encode the space characters : works
if ( preg_match( "/[^\d\s][a-zA-Z0-9\s]*/", $safetag ) ) // Match a string that does not start with numerical value : not working
return ( $safetag );
else
return ( null );
}
То есть hiphop112
допустимо, но 112hiphip
недействительно.0down
недопустимо.
Первый символ ДОЛЖЕН быть буквенным символом [a-zA-Z]
.
Любая помощь приветствуется.