Skip to content

Commit c8ba91c

Browse files
authored
Merge pull request #2 from theteladras/is_full_width
Added is_full_width method
2 parents 07f15da + 7ebb231 commit c8ba91c

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

test/test_is_full_width.py

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import unittest
2+
import validator
3+
4+
class TestIsFullWidth(unittest.TestCase):
5+
6+
def test_valid_full_width(self):
7+
self.assertTrue(validator.is_full_width('ひらがな・カタカナ、.漢字'))
8+
self.assertTrue(validator.is_full_width('3ー0 a@com'))
9+
self.assertTrue(validator.is_full_width('Fカタカナ゙ᆲ'))
10+
self.assertTrue(validator.is_full_width('Ğood=Parts'))
11+
print('OK - test_valid_full_width')
12+
13+
def test_invalid_full_width(self):
14+
self.assertFalse(validator.is_full_width('abc'))
15+
self.assertFalse(validator.is_full_width('abc123'))
16+
self.assertFalse(validator.is_full_width('!"#$%&()<>/+=-_? ~^|.,@`{}[]'))
17+
print('OK - test_invalid_full_width')

validator/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,3 +30,4 @@
3030
from .is_mongo_id import *
3131
from .is_uppercase import *
3232
from .is_slug import *
33+
from .is_full_width import *

validator/is_full_width.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
from .utils.Classes.RegEx import RegEx
2+
from .utils.assert_string import assert_string
3+
4+
full_width_pattern = RegEx("[^\u0020-\u007E\uFF61-\uFF9F\uFFA0-\uFFDC\uFFE8-\uFFEE0-9a-zA-Z]")
5+
6+
def is_full_width(input: str) -> bool:
7+
input = assert_string(input)
8+
return full_width_pattern.match(input)

0 commit comments

Comments
 (0)