doi-utils
TypeScript icon, indicating that this package has built-in type declarations

2.0.2 • Public • Published

doi-utils

doi-utils on npm MIT License CI

A small utility for validating, normalizing, and extracting DOIs from text strings. This repository follows the advice of CrossRef for regular expression patterns.

For the 74.9M DOIs we have seen this matches 74.4M of them. If you need to use only one pattern then use this one.

The utility also recognizes URLs that are likely DOIs, and has specific handling for some repositories (e.g. eLife, Zenodo).

Install

npm install doi-utils

Overview & Usage

import { doi } from 'doi-utils';

const isValid = doi.validate('http://doi.org/10.1016/j.cageo.2015.09.015');

doi.buildUrl('http://dx.doi.org/10.1016/j.cageo.2015.09.015');
doi.buildUrl('http://www.doi.org/10.1016/j.cageo.2015.09.015');
doi.buildUrl('http://doi.org/10.1016/j.cageo.2015.09.015');
doi.buildUrl('doi:10.1016/j.cageo.2015.09.015');
// All of these produce a normalized, secure DOI url:
// https://doi.org/10.1016/j.cageo.2015.09.015

Included Utilities

  • validate - Validates if a single DOI string is valid, is tolerant of leading link or doi: strings.
  • validatePart - Validate the "10.1016/j.cageo.2015.09.015" part of a DOI.
  • normalize - Normalizes a DOI url or string into a DOI of the form 10.1000/xyz000
  • buildUrl - Builds a URL to https://doi.org, includes normalization
  • isOpenFunderRegistry - Returns true if the DOI is in the Open Funder Registry

Options

  • strict: only accept doi.org URLs and doi: prefixes

As of v2.0.0 this package is ESM only.


Made with love by Curvenote

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 2.0.2
    1,824
    • latest

Version History

Package Sidebar

Install

npm i doi-utils

Weekly Downloads

1,260

Version

2.0.2

License

MIT

Unpacked Size

11.1 kB

Total Files

9

Last publish

Collaborators

  • rowanc1
  • stevejpurves