diff --git a/include/class.validator.php b/include/class.validator.php index 4349da3d84efb0b7d83835eca6682ddcd215a4aa..a09f9738ac22fdb384e91346cdd2fe08956e40bc 100644 --- a/include/class.validator.php +++ b/include/class.validator.php @@ -177,7 +177,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'; +?>