From fbfb0e9c4807bb7273391e9f497f2aaea3872307 Mon Sep 17 00:00:00 2001 From: penmetsaa Date: Tue, 21 Aug 2018 17:12:50 +0530 Subject: [PATCH] =?UTF-8?q?Manually=20support=20unicode=20version=20of=20R?= =?UTF-8?q?ussian=20extension=20characters=20=D0=B4=D0=BE=D0=B1=20in=20Reg?= =?UTF-8?q?Ex=20(#2241)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Presently we are supporting unicode characters of Russian extension characters manually in JS. This should be changed in future by setting right flags. Previous PR: #2223 Surprisingly, we need not set unicode characters of upper case '\u0414\u041E\u0411'. This woks fine. --- .../i18n/phonenumbers/phonenumberutil.js | 2 +- .../i18n/phonenumbers/phonenumberutil_test.js | 21 ++++++++++++------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/javascript/i18n/phonenumbers/phonenumberutil.js b/javascript/i18n/phonenumbers/phonenumberutil.js index 7a6ca17f1..75a74cbf2 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil.js +++ b/javascript/i18n/phonenumbers/phonenumberutil.js @@ -780,7 +780,7 @@ i18n.phonenumbers.PhoneNumberUtil.EXTN_PATTERNS_FOR_PARSING_ = i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + '|' + '[ \u00A0\\t,]*' + '(?:e?xt(?:ensi(?:o\u0301?|\u00F3))?n?|\uFF45?\uFF58\uFF54\uFF4E?|' + - 'доб|' + + 'доб|\u0434\u043E\u0431|ДОБ|' + '[;,x\uFF58#\uFF03~\uFF5E]|int|anexo|\uFF49\uFF4E\uFF54)' + '[:\\.\uFF0E]?[ \u00A0\\t,-]*' + i18n.phonenumbers.PhoneNumberUtil.CAPTURING_EXTN_DIGITS_ + '#?|' + diff --git a/javascript/i18n/phonenumbers/phonenumberutil_test.js b/javascript/i18n/phonenumbers/phonenumberutil_test.js index 06ba5aca6..a44cb7f55 100644 --- a/javascript/i18n/phonenumbers/phonenumberutil_test.js +++ b/javascript/i18n/phonenumbers/phonenumberutil_test.js @@ -3449,23 +3449,30 @@ function testParseExtensions() { ruWithExtension.setNationalNumber(4232022511); ruWithExtension.setExtension('100'); assertTrue(ruWithExtension.equals( - phoneUtil.parse('8 (423) 202-25-11, \u0434\u043E\u0431. 100', + phoneUtil.parse('8 (423) 202-25-11, доб. 100', RegionCode.RU))); assertTrue(ruWithExtension.equals( - phoneUtil.parse('8 (423) 202-25-11 \u0434\u043E\u0431. 100', + phoneUtil.parse('8 (423) 202-25-11 доб. 100', RegionCode.RU))); assertTrue(ruWithExtension.equals( - phoneUtil.parse('8 (423) 202-25-11, \u0434\u043E\u0431 100', + phoneUtil.parse('8 (423) 202-25-11, доб 100', RegionCode.RU))); assertTrue(ruWithExtension.equals( - phoneUtil.parse('8 (423) 202-25-11 \u0434\u043E\u0431 100', + phoneUtil.parse('8 (423) 202-25-11 доб 100', RegionCode.RU))); assertTrue(ruWithExtension.equals( - phoneUtil.parse('8 (423) 202-25-11\u0434\u043E\u0431100', + phoneUtil.parse('8 (423) 202-25-11доб100', RegionCode.RU))); + // Testing in unicode format + assertTrue(ruWithExtension.equals( + phoneUtil.parse('8 (423) 202-25-11, \u0434\u043E\u0431. 100', + RegionCode.RU))); // In upper case assertTrue(ruWithExtension.equals( - phoneUtil.parse('8 (423) 202-25-11\u0414\u041E\u0431100', + phoneUtil.parse('8 (423) 202-25-11ДОБ100', + RegionCode.RU))); + assertTrue(ruWithExtension.equals( + phoneUtil.parse('8 (423) 202-25-11\u0414\u041E\u0411100', RegionCode.RU))); // Test that if a number has two extensions specified, we ignore the second. @@ -3651,7 +3658,7 @@ function testIsNumberMatchMatches() { assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH, phoneUtil.isNumberMatch( '+7 423 202-25-11 ext 100', - '+7 4232022511 \u0434\u043E\u0431. 100')); + '+7 4232022511 доб. 100')); // Test proto buffers. assertEquals(i18n.phonenumbers.PhoneNumberUtil.MatchType.EXACT_MATCH, phoneUtil.isNumberMatch(NZ_NUMBER, '+6403 331 6005'));