isUri
Javascript implementation for truly checking if the provided input is a valid URI, Based on RFC 3986.
Install
NPM
$ npm install isuri
Node.js
var isUri = require('isuri');
isUri.isValid('http://example.com');
isUri.isValid('Bananas in pajamas are coming down the stairs');
isUri.isValid(value)
Checks if the value provided is a valid URI and returns true if so, returns false otherwise.
isUri.uriRegex()
Returns the regular expression used for validating URIs.
isUri.createUriRegex([options])
Creates a new regular expression for validating URIs which accepts the following parameters:
options
- optional settings:
scheme
- Specifies one or more acceptable Schemes, should only include the scheme name. Can be an Array or String (strings are automatically escaped for use in a Regular Expression).
var isUri = require('isuri');
var httpRegex = isUri.createUriRegex({ scheme: [ /https?/ ] });
httpRegex.test('http://example.com');
httpRegex.test('https://example.com');
httpRegex.test('ftp://example.com');
httpRegex.test('Bananas in pajamas are coming down the stairs');
Benchmarks
> Benchmarking complex-ipv4.js
Testing URI "http://asdf:qw%20er@127.0.0.1:8000?asdf=12345&asda=fc%2F#bacon"
1 test completed.
isUri
> Benchmarking complex-ipv6.js
Testing URI "http://asdf:qw%20er@[FEDC:BA98:7654:3210:FEDC:BA98:7654:3210]:8000?asdf=12345&asda=fc%2F#bacon"
1 test completed.
isUri
> Benchmarking complex-ipvFuture.js
Testing URI "http://asdf:qw%20er@[v1.09azAZ-._~!$&'()*+,;=:]:8000?asdf=12345&asda=fc%2F#bacon"
1 test completed.
isUri
> Benchmarking complex-uri.js
Testing URI "http://asdf:qw%20er@localhost:8000?asdf=12345&asda=fc%2F#bacon"
1 test completed.
isUri
> Benchmarking simple-uri.js
Testing URI "mailto:John.Doe@example.com"
1 test completed.
isUri
License
MIT