From 1829e7617ebf8e7ad4dc23785c096a801eddfb67 Mon Sep 17 00:00:00 2001 From: fakhrip Date: Mon, 5 Oct 2020 19:53:34 +0700 Subject: [PATCH 1/3] =?UTF-8?q?feat(isAlpha)=20fix=20=D8=AD=20character=20?= =?UTF-8?q?validation=20in=20fa-IR=20language=20code=20(#1400)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/lib/alpha.js | 1 + test/validators.js | 17 +++++++++++++++++ 2 files changed, 18 insertions(+) diff --git a/src/lib/alpha.js b/src/lib/alpha.js index acf69a8ac..4107252c3 100644 --- a/src/lib/alpha.js +++ b/src/lib/alpha.js @@ -25,6 +25,7 @@ export const alpha = { 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i, 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i, 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i, + 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i, ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/, he: /^[א-ת]+$/, fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i, diff --git a/test/validators.js b/test/validators.js index 7b1c3efef..fe51aee25 100644 --- a/test/validators.js +++ b/test/validators.js @@ -1424,6 +1424,23 @@ describe('Validators', () => { }); }); + it('should validate persian alpha strings', () => { + test({ + validator: 'isAlpha', + args: ['fa-IR'], + valid: [ + 'تست', + 'عزیزم', + 'ح', + ], + invalid: [ + 'تست 1', + ' عزیزم ', + '', + ], + }); + }); + it('should error on invalid locale', () => { test({ validator: 'isAlpha', From e37084f5e945f0b1bca9c7076c17ce2c59c8427a Mon Sep 17 00:00:00 2001 From: fakhrip Date: Tue, 6 Oct 2020 17:44:04 +0700 Subject: [PATCH 2/3] feat: change locale to match lexical order --- src/lib/alpha.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/alpha.js b/src/lib/alpha.js index 4107252c3..31fa408cd 100644 --- a/src/lib/alpha.js +++ b/src/lib/alpha.js @@ -7,6 +7,7 @@ export const alpha = { 'de-DE': /^[A-ZÄÖÜß]+$/i, 'el-GR': /^[Α-ώ]+$/i, 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i, + 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i, 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, 'it-IT': /^[A-ZÀÉÈÌÎÓÒÙ]+$/i, 'nb-NO': /^[A-ZÆØÅ]+$/i, @@ -25,7 +26,6 @@ export const alpha = { 'uk-UA': /^[А-ЩЬЮЯЄIЇҐі]+$/i, 'vi-VN': /^[A-ZÀÁẠẢÃÂẦẤẬẨẪĂẰẮẶẲẴĐÈÉẸẺẼÊỀẾỆỂỄÌÍỊỈĨÒÓỌỎÕÔỒỐỘỔỖƠỜỚỢỞỠÙÚỤỦŨƯỪỨỰỬỮỲÝỴỶỸ]+$/i, 'ku-IQ': /^[ئابپتجچحخدرڕزژسشعغفڤقکگلڵمنوۆھەیێيطؤثآإأكضصةظذ]+$/i, - 'fa-IR': /^[ابپتثجچحخدذرزژسشصضطظعغفقکگلمنوهی]+$/i, ar: /^[ءآأؤإئابةتثجحخدذرزسشصضطظعغفقكلمنهوىيًٌٍَُِّْٰ]+$/, he: /^[א-ת]+$/, fa: /^['آاءأؤئبپتثجچحخدذرزژسشصضطظعغفقکگلمنوهةی']+$/i, From a83805ea61f05f796cc1f9dc606c3ddad497cc1d Mon Sep 17 00:00:00 2001 From: fakhrip Date: Fri, 9 Oct 2020 13:29:55 +0700 Subject: [PATCH 3/3] feat: reoverride fa-IR language code --- src/lib/alpha.js | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/lib/alpha.js b/src/lib/alpha.js index 31fa408cd..eed25df86 100644 --- a/src/lib/alpha.js +++ b/src/lib/alpha.js @@ -119,6 +119,9 @@ for (let i = 0; i < commaDecimal.length; i++) { decimal[commaDecimal[i]] = ','; } +// see #1455 +alpha['fa-IR'] = alpha['fa-IR']; + alpha['pt-BR'] = alpha['pt-PT']; alphanumeric['pt-BR'] = alphanumeric['pt-PT']; decimal['pt-BR'] = decimal['pt-PT'];