Skip to content

is_iri should allow UTF-8 characters #25

@gu-stav

Description

@gu-stav

Currently is_iri fails on any characters, which don't match this regex:

if (/[^a-z0-9\:\/\?\#\[\]\@\!\$\&\'\(\)\*\+\,\;\=\.\-\_\~\%]/i.test(value)) return;

Example:

t.ok(is_uri('http://localhost/ä'), 'http://localhost/ä');

As far as I understand the main difference between URI and IRI is:

IRIs extend URIs by using the Universal Character Set, where URIs were limited to ASCII, with far fewer characters.

https://en.wikipedia.org/wiki/Internationalized_Resource_Identifier

Therefore is_iri should allow all UTF-8 characters and these exports aren't correct:

module.exports.is_uri = is_iri;
module.exports.isUri = is_iri;

Instead there should be two exports: is_iri and is_uri.

I saw there wasn't any commit to this repo since 2015, but since this affects a Gatsby issue I was wondering, what you plans with the module are? Do you think about handing it over, @ogt?

The module is used heavily according to npms download numbers, so it might be in the interest of the community to give it some 💌 .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions