Skip to content

validate_length not working for isURL()  #1412

@bruno-smaldone

Description

@bruno-smaldone

Hi Validator team,

Thanks for putting this great package together.

I've been recently testing the change introduced in this issue: ed86b0a

It's listed in the API docs so I believe it should be live:
validate_length - if set as false isURL will skip string length validation (2083 characters is IE max URL length).

However, when installing version 13.1.1 and running the isURL function with options {validate_length: false}, it still returns false.

Here's my package JSON:

{
  "name": "test2",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "validator": "^13.1.1"
  }
}

And index.js:

const validator = require('validator');
const url = 'https://www.google.com/search?q=Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Duis+pellentesque+erat+lacinia+mollis+vestibulum.+Curabitur+eget+ornare+nisl.+Sed+vel+augue+elit.+In+lacinia+fermentum+iaculis.+Integer+varius+elit+sapien%2C+vitae+condimentum+mi+pulvinar+non.+Suspendisse+fringilla+tristique+pulvinar.+Donec+non+aliquet+nulla%2C+at+vehicula+odio.+Duis+eget+quam+tristique%2C+varius+diam+et%2C+aliquet+ipsum.+Etiam+eget+quam+mauris.+Vivamus+pretium+quam+in+velit+congue%2C+non+vehicula+velit+vulputate.+Nunc+sed+ipsum+at+augue+laoreet+rutrum.+Praesent+volutpat+tincidunt+purus%2C+eu+faucibus+tellus+commodo+quis.+Ut+tristique+at+risus+et+scelerisque.+Duis+id+tristique+lorem.+Proin+imperdiet+facilisis+lacus%2C+congue+pulvinar+nisl+finibus+ut.&oq=Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Duis+pellentesque+erat+lacinia+mollis+vestibulum.+Curabitur+eget+ornare+nisl.+Sed+vel+augue+elit.+In+lacinia+fermentum+iaculis.+Integer+varius+elit+sapien%2C+vitae+condimentum+mi+pulvinar+non.+Suspendisse+fringilla+tristique+pulvinar.+Donec+non+aliquet+nulla%2C+at+vehicula+odio.+Duis+eget+quam+tristique%2C+varius+diam+et%2C+aliquet+ipsum.+Etiam+eget+quam+mauris.+Vivamus+pretium+quam+in+velit+congue%2C+non+vehicula+velit+vulputate.+Nunc+sed+ipsum+at+augue+laoreet+rutrum.+Praesent+volutpat+tincidunt+purus%2C+eu+faucibus+tellus+commodo+quis.+Ut+tristique+at+risus+et+scelerisque.+Duis+id+tristique+lorem.+Proin+imperdiet+facilisis+Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Duis+pellentesque+erat+lacinia+mollis+vestibulum.+Curabitur+eget+ornare+nisl.+Sed+vel+augue+elit.+In+lacinia+fermentum+iaculis.+Integer+varius+elit+sapien%2C+vitae+condimentum+mi+pulvinar+non.+Suspendisse+fringilla+tristique+pulvinar.+Donec+non+aliquet+nulla%2C+at+vehicula+odio.+Duis+eget+quam+tristique%2C+varius+diam+et%2C+aliquet+ipsum.+Etiam+eget+quam+mauris.+Vivamus+pretium+quam+in+velit+congue%2C+non+vehicula+velit+vulputate.+Nunc+sed+ipsum+at+augue+laoreet+rutrum.+Praesent+volutpat+tincidunt+purus%2C+eu+faucibus+tellus+commodo+quis.+Ut+tristique+at+risus+et+scelerisque.+Duis+id+tristique+lorem.+Proin+imperdiet+facilisis+lacus%2C+congue+pulvinar+nisl+finibus+ut.&oq=Lorem+ipsum+dolor+sit+amet%2C+consectetur+adipiscing+elit.+Duis+pellentesque+erat+lacinia+mollis+vestibulum.+Curabitur+eget+ornare+nisl.+Sed+vel+augue+elit.+In+lacinia+fermentum+iaculis.+Integer+varius+elit+sapien%2C+vitae+condimentum+mi+pulvinar+non.+Suspendisse+fringilla+tristique+pulvinar.+Donec+non+aliquet+nulla%2C+at+vehicula+odio.+Duis+eget+quam+tristique%2C+varius+diam+et%2C+aliquet+ipsum.+Etiam+eget+quam+mauris.+Vivamus+pretium+quam+in+velit+congue%2C+non+vehicula+velit+vulputate.+Nunc+sed+ipsum+at+augue+laoreet+rutrum.+Praesent+volutpat+tincidunt+purus%2C+eu+faucibus+tellus+commodo+quis.+Ut+tristique+at+risus+et+scelerisque.+Duis+id+tristique+lorem.+Proin+imperdiet+facilisis+lacus%2C+congue+pulvinar+nisl+finibus+ut.&aqs=chrome..69i57.961j0j4&sourceid=chrome&ie=UTF-8';
console.log(validator.isURL(url, {validate_length: false}));

I've noticed that these files contain references to the old code:

lib/isURL.js:

if (!url || url.length >= 2083 || /[\s<>]/.test(url)) {
    return false;
  }

es/lib/isURL.js:

if (!url || url.length >= 2083 || /[\s<>]/.test(url)) {
    return false;
  }

Perhaps I'm doing something wrong, I'd appreciate if you could let me know what that is :)

Thanks!

Additional context
Validator.js version: 13.1.1
Node.js version: 12
OS platform: macOS

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions