From 7ebb231639e1c91f2115a31e916faddf198729fe Mon Sep 17 00:00:00 2001 From: Sanel Hadzini <31168388+theteladras@users.noreply.github.com> Date: Mon, 1 Nov 2021 23:57:08 +0100 Subject: [PATCH] Added is_full_width method --- test/test_is_full_width.py | 17 +++++++++++++++++ validator/__init__.py | 1 + validator/is_full_width.py | 8 ++++++++ 3 files changed, 26 insertions(+) create mode 100644 test/test_is_full_width.py create mode 100644 validator/is_full_width.py 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)