diff --git a/test/test_is_full_width.py b/test/test_is_full_width.py new file mode 100644 index 0000000..38c399e --- /dev/null +++ b/test/test_is_full_width.py @@ -0,0 +1,17 @@ +import unittest +import validator + +class TestIsFullWidth(unittest.TestCase): + + def test_valid_full_width(self): + self.assertTrue(validator.is_full_width('ひらがな・カタカナ、.漢字')) + self.assertTrue(validator.is_full_width('3ー0 a@com')) + self.assertTrue(validator.is_full_width('Fカタカナ゙ᆲ')) + self.assertTrue(validator.is_full_width('Ğood=Parts')) + print('OK - test_valid_full_width') + + def test_invalid_full_width(self): + self.assertFalse(validator.is_full_width('abc')) + self.assertFalse(validator.is_full_width('abc123')) + self.assertFalse(validator.is_full_width('!"#$%&()<>/+=-_? ~^|.,@`{}[]')) + print('OK - test_invalid_full_width') diff --git a/validator/__init__.py b/validator/__init__.py index 8eac2d9..45ebec7 100644 --- a/validator/__init__.py +++ b/validator/__init__.py @@ -30,3 +30,4 @@ from .is_mongo_id import * from .is_uppercase import * from .is_slug import * +from .is_full_width import * diff --git a/validator/is_full_width.py b/validator/is_full_width.py new file mode 100644 index 0000000..55fe4bc --- /dev/null +++ b/validator/is_full_width.py @@ -0,0 +1,8 @@ +from .utils.Classes.RegEx import RegEx +from .utils.assert_string import assert_string + +full_width_pattern = RegEx("[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]") + +def is_full_width(input: str) -> bool: + input = assert_string(input) + return full_width_pattern.match(input)