Giter Site home page Giter Site logo

relib's Introduction

Build Status Coverage Status NPM Downloads

relib

A regular expression library for node.js.

Installation

$ npm i relib --save

Usage

var ips = require('relib').ip
,v4 = ips.v4 ,v6 = ips.v6 ,ip = ips.ip;

console.log(v4.is('192.168.0.1')); // true
console.log(v6.is('1:2:3:4:5:6:7:8')); // true
console.log(ip.is('1:2:3:4:5:6:7:8')); // true
console.log(ip.contain('abc 192.168.0.1')); // true
console.log(ip.match('abc 1:2:3:4:5:6:7:8')); // ['1:2:3:4:5:6:7:8']

console.log(ip.e('unicorn 192.168.0.1').is()); // false
console.log(ip.e('unicorn 192.168.0.1').contain());  // true
console.log(ip.e('unicorn 192.168.0.1').match());  // [ '192.168.0.1' ]
console.log(ip.e().test('unicorn 192.168.0.1')); // = .contain() -> true
console.log(ip.exact().e().test('unicorn 192.168.0.1')); // = .is() -> fasle
console.log(v6.e()); // /(?:(?:[0-9a-fA-F:]){1,4}(?:(?::(?:[0-9a-fA-F]){1,4}|:)){2,7})+/

API

RECOO API

.is(String)

Check if a string is match the regex.

.contain(String)

Check if a string matching the regex.

.match(String)

Return an array if a string matching the regex.

See RECOO for details.

IP Address Regex

  • .v4.is(), v4.contain(), v4.match() - IPv4 regex
  • .v6.is(), v6.contain(), v6.match() - IPv6 regex
  • .ip.is(), ip.contain(), ip.match() - IPv4 or IPv6
var ips = require('relib').ip
,v4 = ips.v4 ,v6 = ips.v6 ,ip = ips.ip;

ip.is('1:2:3:4:5:6:7:8'); // true
ip.is('unicorn 192.168.0.1'); // false
ip.contain('unicorn 192.168.0.1 cake 1:2:3:4:5:6:7:8 rainbow'); // true
ip.match('unicorn 192.168.0.1 cake 1:2:3:4:5:6:7:8 rainbow'); // ['192.168.0.1', '1:2:3:4:5:6:7:8']

v4.is('192.168.0.1'); // true
v4.is('1:2:3:4:5:6:7:8'); // false
v6.is('1:2:3:4:5:6:7:8'); // true

Email Address Regex

  • email.is(string) - Check if a string is email address.
  • email.contain(string) - Check if a string contains email address.
  • email.match(string) - Return an array if a string contains email address.
var email = require('relib').email;

email.is('[email protected]'); // true
email.contain('unicorn [email protected]'); // true
email.match('unicorn [email protected] cake [email protected] rainbow'); // ['[email protected]', '[email protected]']

Domain Regex

  • domain.is(string) - Check if a string is domain.
  • domain.contain(string) - Check if a string contains domain.
  • domain.match(string) - Return an array if a string contains domain.
var domain = require('relib').domain;

domain.is('example.com'); // true
domain.is('unicorn example.com'); // false
domain.contain('unicorn example.com cake a.sub.domain.org rainbow'); // true
domain.match('unicorn example.com cake a.sub.domain.org rainbow'); // ['example.com', 'a.sub.domain.org']

URLs Regex

  • url.is(string) - Check if a string is URL.
  • url.contain(string) - Check if a string contains URL.
  • url.match(string) - Return an array if a string contains URL.
var url = require('relib').url;

url.is('https://github.com'); // true
url.contain('foo github.com bar google.com'); // true
url.match('foo https://github.com bar google.com'); // ['https://github.com', 'google.com']

...

Contributions

To run the tests for relib simply run:

npm i && npm test  # install dev dependencies and test

For bugs and feature requests, please create an issue.

Pull requests is always welcome.

  1. Fork it
  2. Create your feature branch git checkout -b my-new-feature
  3. Commit your changes git commit -am 'Add some feature'
  4. Push to the branch git push origin my-new-feature
  5. Create new Pull Request

Contributors

License

MIT © 2015 Mark Zhan.

relib's People

Contributors

markzhan avatar

Watchers

 avatar  avatar

Forkers

robludwig

relib's Issues

relib/lib/url: cannot file ../tlds.json

The url parser is broken because it does cannot find tlds.json.
I see that this is generated in the ./lib/tlds.js file,
it should probably be run as a prepublish script.

Though, it is still possible to use some of the other modules directly by requiring them directly require('relib/lib/ip') etc

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.