资源算法better-dni

better-dni

2020-01-19 | |  38 |   0 |   0

npmCodacy gradeTravis (.org)Coveralls githubKnown Vulnerabilitiesnpm bundle size (minified)

Better DNI

The fastest Spanish DNI (NIE / NIF) validation out there.

Installation

// npmnpm i better-dni// yarnyarn add better-dni

Usage

isValid / isNIF / isNIE / ctrlChar

import { isValid, isNIF, isNIE, ctrlChar } from "better-dni";// validates any type of DNI (NIE or NIF)isValid("Z7662566Y"); //=> true// checks if it is a valid NIFisNIF("06672804K"); //=> true// checks if it is a valid NIEisNIE("X1302311M"); //=> true// returns the control letter in upper casectrlChar("X1302311M"); //=> 'M'ctrlChar("X1302311"); //=> 'M'

Generators

NIF

import { randomNIF, randomNIFWith } from "better-dni";randomNIF(); //=> '31719111H'// returns a valid random NIF given the control letterrandomNIFWith("C"); // => '95652190C'// a seed (Number) can be provided and it will always return the same resultrandomNIFWith("G", 1); //=> '95652174G'randomNIFWith("G", 1); //=> '95652174G'

NIE

import { randomNIE, randomNIEWith } from "better-dni";randomNIE(); //=> 'X1120409X'// returns a valid random NIE given the first and control letterrandomNIEWith("Y", "C"); //=> 'Y2098020C'randomNIEWith("Z", "G"); //=> 'Z5670557G'// a seed (Number) can be provided and it will always return the same resultrandomNIEWith("X", "E", 1); //=> 'X2080280E'randomNIEWith("X", "E", 1); //=> 'X2080280E'

Normalize

// Returns a "clean" dni string removing spaces, dashes, etc.normalize(" x-9464186_p   "); // => "X9464186P"

Benchmark

better-dni does a similar job as other libraries like dni-js, dni-js-validator, and @willowi/validate-nif but better-dni is built with optimization and speed in mind. Take a look at these benchmark results:

yarn && yarn build && yarn benchmark

isValid

libmethodoperations/sec
better-dni#isValid10,128,1483.5x faster
dni-js-validator#isValid2,870,822
dni-js#isValid2,448,090
@willowi/validate-nif#validateNif683,573

ctrlChar / getLetter

libmethodoperations/sec
better-dni#ctrlChar10,874,5685.3x faster
dni-js#getLetter2,032,845
dni-js-validatorno method-
@willowi/validate-nifno method-

Benchmark on a MacBook Pro (Retina, 13-inch, Early 2015) - 3,1 GHz Intel Core i7 - 16 GB 1867 MHz DDR3 / Node v10.2.1

Demo

https://better-dni.netlify.com/

Related

Reference

http://www.interior.gob.es/web/servicios-al-ciudadano/dni/calculo-del-digito-de-control-del-nif-nie


上一篇: pytorch-dni

下一篇:lc-validator-dni

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...