Repository: validatorjs/validator.js (js)

Issue:
(isMobilePhone): es-CO locale, passing landlines as valid
**Describe the bug**
the regex in [this](https://github.com/validatorjs/validator.js/commit/302d2957c924b515cb22f7e87b5e84fee8636d6e) commit is passing landlines as valid.
isn't the function isMobilePhone() intended to validate Mobile phones Only?

please refer to 
Landlines: https://en.wikipedia.org/wiki/Telephone_numbers_in_Colombia#Landline_service
Mobile: https://en.wikipedia.org/wiki/Telephone_numbers_in_Colombia#Mobile_service

**Examples**
0698345 and 9821235 passes as valid, are (apparently) landlines, not mobile

**Additional context**
Validator.js version: 13.5.2 (imported in express-validator 6.10.0)
Node.js version: 14.15.4
OS platform: Arch Linux


Pull request:
Prevent isMobilePhone from allowing landline numbers in es-CO
Fixes #1622 
The regex for es-Co mobile phone validation updated in #1541  is allowing landline numbers. The solo purpose of this PR is to allow only mobile phone numbers to be validated

## Checklist

- [x] PR contains only changes related; no stray files, etc.
- [ ] README updated (where applicable)
- [x] Tests written (where applicable)


Patch:
diff --git a/src/lib/isLicensePlate.js b/src/lib/isLicensePlate.js
index c4b010d..db182bf 100644
--- a/src/lib/isLicensePlate.js
+++ b/src/lib/isLicensePlate.js
@@ -16,11 +16,10 @@ export default function isLicensePlate(str, locale) {
     return validators[locale](str);
   } else if (locale === 'any') {
     for (const key in validators) {
-      if (validators.hasOwnProperty(key)) {
-        const validator = validators[key];
-        if (validator(str)) {
-          return true;
-        }
+      /* eslint guard-for-in: 0 */
+      const validator = validators[key];
+      if (validator(str)) {
+        return true;
       }
     }
     return false;
diff --git a/src/lib/isMobilePhone.js b/src/lib/isMobilePhone.js
index 68a1992..207dae7 100644
--- a/src/lib/isMobilePhone.js
+++ b/src/lib/isMobilePhone.js
@@ -56,7 +56,7 @@ const phones = {
   'en-ZW': /^(\+263)[0-9]{9}$/,
   'es-AR': /^\+?549(11|[2368]\d)\d{8}$/,
   'es-BO': /^(\+?591)?(6|7)\d{7}$/,
-  'es-CO': /^(\+?57)?([1-8]{1}|3[0-9]{2})?[0-9]{1}\d{6}$/,
+  'es-CO': /^(\+?57)?3(0(0|1|2|4|5)|1\d|2[0-4]|5(0|1))\d{7}$/,
   'es-CL': /^(\+?56|0)[2-9]\d{1}\d{7}$/,
   'es-CR': /^(\+506)?[2-8]\d{7}$/,
   'es-DO': /^(\+?1)?8[024]9\d{7}$/,
diff --git a/src/lib/isStrongPassword.js b/src/lib/isStrongPassword.js
index e18a759..28bb063 100644
--- a/src/lib/isStrongPassword.js
+++ b/src/lib/isStrongPassword.js
@@ -49,6 +49,7 @@ function analyzePassword(password) {
     symbolCount: 0,
   };
   Object.keys(charMap).forEach((char) => {
+    /* istanbul ignore else */
     if (upperCaseRegex.test(char)) {
       analysis.uppercaseCount += charMap[char];
     } else if (lowerCaseRegex.test(char)) {


Test patch:
diff --git a/test/validators.js b/test/validators.js
index 34b6474..d6d02c5 100644
--- a/test/validators.js
+++ b/test/validators.js
@@ -6506,18 +6506,11 @@ describe('Validators', () => {
         valid: [
           '+573003321235',
           '573003321235',
-          '579871235',
           '3003321235',
           '3213321235',
           '3103321235',
-          '3253321235',
-          '3321235',
-          '574321235',
-          '5784321235',
-          '5784321235',
-          '9821235',
+          '3243321235',
           '573011140876',
-          '0698345',
         ],
         invalid: [
           '1234',
@@ -6530,6 +6523,13 @@ describe('Validators', () => {
           '5703013347567',
           '069834567',
           '969834567',
+          '579871235',
+          '574321235',
+          '5784321235',
+          '5784321235',
+          '9821235',
+          '0698345',
+          '3321235',
         ],
       },
       {