diff --git a/include/class.validator.php b/include/class.validator.php index 171f85f220a3471a84820616dd80752438607248..62ce6815345bb754a9d260211b1585f42e7c836d 100644 --- a/include/class.validator.php +++ b/include/class.validator.php @@ -173,7 +173,7 @@ class Validator { function is_username($username, &$error='') { if (strlen($username)<2) $error = 'At least two (2) characters'; - elseif (!preg_match('/^[\p{L}._-]+$/u', $username)) + elseif (!preg_match('/^[\p{L}\d._-]+$/u', $username)) $error = 'Username contains invalid characters'; return $error == ''; } diff --git a/setup/test/tests/test.validation.php b/setup/test/tests/test.validation.php new file mode 100644 index 0000000000000000000000000000000000000000..942767329642101c1f6db4a483ff23798936c118 --- /dev/null +++ b/setup/test/tests/test.validation.php @@ -0,0 +1,21 @@ +<?php + +require_once INCLUDE_DIR.'class.validator.php'; + +class TestValidation extends Test { + var $name = "Validation checks"; + + function testValidUsernames() { + // Ascii + $this->assert(Validator::is_username('jared')); + $this->assert(Validator::is_username('jared12')); + // Unicode + $this->assert(Validator::is_username('järed')); + $this->assert(Validator::is_username('järed12')); + $this->assert(Validator::is_username('ä¸å›½æœŸåˆŠå…¨æ–‡æ•°æ®')); + // Non-letters + $this->assert(!Validator::is_username('j®red')); + } +} +return 'TestValidation'; +?>