Skip to content

A simple and convenient library of functions that leverage regular expressions while hiding its complexity of implementation

License

Notifications You must be signed in to change notification settings

npranto/regexer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Regexer
Regexer

NPM

CircleCI npm npm GitHub issues Commitizen friendly GitHub license

A simple and convenient library of functions that leverage regular expressions while hiding its complexity of implementation

Table of Contents

Why Regexer?

Regular expressions are awesome and absolutely super useful when it comes to looking for pattern matches in a string, but clearly it is not the easiest topic to get your head around. Don't believe me, just take a look!

Regexer just attempts to make the process of using some of the most popular regular expressions easier for you. You no longer need to look all over the place for finding a regular expression for matching an email or a phone number, or a hex value or even a day of the week. Just install regexer and use the built in common functions to verify candidate values.

Still confused...? Let's look at an example

Installation

Before we get going, make sure you have Node.js installed on your system, so we can use the NPM (Node Package Manager) to install regexer on your project.

$ npm install --save nsp-regexer

Usage

// ES5
const regexer = require('nsp-regexer');

console.log( regexer.isEmail('jsmith@gmail.com') )  // true
console.log( regexer.isLowerCase('KEVIN') )     // false
// ES6+
import { isVowel, isNegativeNumber } from 'nsp-regexer';

console.log( isVowel('b') )  // false
console.log( isNegativeNumber(-50.67) )  // true

API

.is12HourTime(time[string])

Returns true if time is in a valid 12-hour format (09:59), otherwise returns false

import { is12HourTime } from 'nsp-regexer';

is12HourTime('1:00')  
// true

is12HourTime(09:07')  
// true

is12HourTime('15:40')  
// false

.is24HourTime(time[string])

Returns true if time is in a valid 24-hour format (17:45), otherwise returns false

import { is24HourTime } from 'nsp-regexer';

is24HourTime('3:55')  
// true

is24HourTime(22:33')  
// true

is24HourTime('40:40')  
// false

.isCreditCard(creditCardNumber[number|string])

Returns true if creditCardNumber is a valid credit card number, otherwise returns false

import { isCreditCard } from 'nsp-regexer';

isCreditCard('345768475867474')  
// true

isCreditCard(5465838563658274)  
// true

isCreditCard('?')  
// false

.isDayOfMonth(day[number|string])

Returns true if day is a day of the month (1-31), otherwise returns false

import { isDayOfMonth } from 'nsp-regexer';

isDayOfMonth('28')  
// true

isDayOfMonth(12)  
// true

isDayOfMonth(55)  
// false

.isDayOfWeekString(day[number|string])

Returns true if day is name of a week day, otherwise returns false

import { isDayOfWeekString } from 'nsp-regexer';

isDayOfWeekString('monday')  
// true

isDayOfWeekString('Tuesday')  
// true

isDayOfWeekString('thURSdAy')  
// true

isDayOfWeekString('FRIDAY')  
// true

isDayOfWeekString('doomsday')  
// false

.isDecimal(number[number|string])

Returns true if number is a decimal number, otherwise returns false

import { isDecimal } from 'nsp-regexer';

isDecimal('55.55')  
// true

isDecimal(-0.999)  
// true

isDecimal(50)  
// false

.isDomainName(domainName[string])

Returns true if domainName is a valid domain name, otherwise returns false

import { isDomainName } from 'nsp-regexer';

isDomainName('www.pen.io')  
// true

isDomainName('jack.com')  
// true

isDomainName('www.google?money.com')  
// false

.isEmail(email[string])

Returns true if email is a valid email address, otherwise returns false

import { isEmail } from 'nsp-regexer';

isEmail('jsmith@gmail.com')  
// true

isEmail('sdfsdfsdfsd.com')  
// false

.isHexValue(hexValue[string])

Returns true if hexValue is a valid hex value, otherwise returns false

import { isHexValue } from 'nsp-regexer';

isHexValue('#FBB')  
// true

isHexValue('#SHFF56')  
// true

isHexValue('#FF56')  
// true

isHexValue('sbfj&&#')  
// false

.isHTMLTag(htmlTag[string])

Returns true if htmlTag is an HTML tag, otherwise returns false

import { isHTMLTag } from 'nsp-regexer';

isHTMLTag('<img src="./img/cat.png" />')  
// true

isHTMLTag('#SHFF56')  
// true

isHTMLTag('<h1 class="center"> Hello World! </h1>')  
// true

isHTMLTag('<body>')  
// false

.isInteger(integer[number|string])

Returns true if integer is an integer, otherwise returns false

import { isInteger } from 'nsp-regexer';

isInteger('455')  
// true

isInteger(-44)  
// true

isInteger('-34.66')  
// false

.isIPAddressV4(ipAddress[string])

Returns true if ipAddress a valid IP address, otherwise returns false

import { isIPAddressV4 } from 'nsp-regexer';

isIPAddressV4('172.16.254.1')  
// true

isIPAddressV4('0.1.0.1')  
// true

isIPAddressV4('54.45.222.345')  
// false

.isLetter(char[string])

Returns true if char an alphabetic letter, otherwise returns false

import { isLetter } from 'nsp-regexer';

isLetter('v')  
// true

isLetter('P')  
// true

isLetter('?')  
// false

.isLowerCase(str[string])

Returns true if str contains all lower case letters, otherwise returns false

import { isLowerCase } from 'nsp-regexer';

isLowerCase('coffee')  
// true

isLowerCase('life is awesome!')  
// true

isLowerCase('I love the new Avengers!')  
// false

.isMonthOfYear(number[number|string])

Returns true if number is a month of year (1-12), otherwise returns false

import { isMonthOfYear } from 'nsp-regexer';

isMonthOfYear('4')  
// true

isMonthOfYear(12)  
// true

isMonthOfYear(30)  
// false

.isMonthOfYearString(month[string])

Returns true if month is a name of a month of year, otherwise returns false

import { isMonthOfYearString } from 'nsp-regexer';

isMonthOfYearString('march')  
// true

isMonthOfYearString('April')  
// true

isMonthOfYearString('augusta')  
// false

.isNegativeInteger(integer[number|string])

Returns true if integer is a negative integer, otherwise returns false

import { isNegativeInteger } from 'nsp-regexer';

isNegativeInteger('-55')  
// true

isNegativeInteger(-6456)  
// true

isNegativeInteger('0.33')  
// false

.isNegativeNumber(number[number|string])

Returns true if number is a negative number, otherwise returns false

import { isNegativeNumber } from 'nsp-regexer';

isNegativeNumber('-0.44')  
// true

isNegativeNumber(-55)  
// true

isNegativeNumber('-1434.44')  
// true

isNegativeNumber(10)  
// false

.isNumber(number[number|string])

Returns true if number is a number, otherwise returns false

import { isNumber } from 'nsp-regexer';

isNumber('-0.44')  
// true

isNumber('-4.6')  
// true

isNumber(45)  
// true

isNumber('a coffee')  
// false

.isPassword(password[string])

Returns true if password meets simple ruleset of a password (contains letters, numbers, hyphens, and underscores; length is between 6 to 18 characters), otherwise returns false

import { isPassword } from 'nsp-regexer';

isPassword('')  
// true

isPassword('i-love-cats_haha')  
// true

isPassword('02140coffee')  
// false

.isPositiveInteger(integer[number|string])

Returns true if integer is a positive integer, otherwise returns false

import { isPositiveInteger } from 'nsp-regexer';

isPositiveInteger('55')  
// true

isPositiveInteger(-140)  
// false

.isPositiveNumber(number[number|string])

Returns true if number is a positive number, otherwise returns false

import { isPositiveNumber } from 'nsp-regexer';

isPositiveNumber('4')  
// true

isPositiveNumber('0.5')  
// true

isPositiveNumber(74.23)  
// true

isPositiveNumber(-6)  
// false

.isSSN(number[string])

Returns true if number is a valid social security number, otherwise returns false

import { isSSN } from 'nsp-regexer';

isSSN('031767927')  
// true

isSSN('031-76-7927')  
// true

isSSN('031 76 7927')  
// true

isSSN('545-454-4555')  
// false

.isStandardZipCode(zipCode[string])

Returns true if zipCode is a valid zip code, otherwise returns false

import { isStandardZipCode } from 'nsp-regexer';

isStandardZipCode('02166')  
// true

isStandardZipCode('12045-6089')  
// true

isStandardZipCode('545-454-4555')  
// false

.isStrongPassword(password[string])

Returns true if password is what generally considered as a strong password (must contain at least 1 lowercase alphabetical character, 1 uppercase alphabetical character, 1 numeric character, one special character [!, @, #, $, %, ^. &, or *], and at least eight characters long), otherwise returns false

import { isStrongPassword } from 'nsp-regexer';

isStrongPassword('Ajohnson184&')  
// true

isStrongPassword('kevinWilliamsBaller23^')  
// true

isStrongPassword('kevinIsAwesome7')  
// false - missing a special character

.isUpperCase(str[string])

Returns true if str contains all upper case letters, otherwise returns false

import { isUpperCase } from 'nsp-regexer';

isUpperCase('G')  
// true

isUpperCase('OH WOW!')  
// true

isUpperCase('tea is always BETTER!')  
// false

.isUrl(url[string])

Returns true if url a valid URL address, otherwise returns false

import { isUrl } from 'nsp-regexer';

isUrl('http://3iem.museum:1337/')  
// true

isUrl('plik.co.uk')  
// true

isUrl('tea@g!.org')  
// false

.isUsername(username[string])

Returns true if username meets the basic requirement of an username (contains letters, numbers, hyphens, and underscores; length is between 3 to 16 characters), otherwise returns false

import { isUsername } from 'nsp-regexer';

isUsername('jSmith455')  
// true

isUsername('james-bond007')  
// true

isUsername('0coffeeEnergy')  
// false

.isUSPhoneNumber(phoneNumber[string])

Returns true if phoneNumber a valid US phone number, otherwise returns false

import { isUSPhoneNumber } from 'nsp-regexer';

isUSPhoneNumber('6174330080')  
// true

isUSPhoneNumber('(617) 433-0080')  
// true

isUSPhoneNumber('454-454-4544-45')  
// false

.isUSState(state[string])

Returns true if state a name of one of US state, otherwise returns false

import { isUSState } from 'nsp-regexer';

isUSState('arizona')  
// true

isUSState('Rhode Island')  
// true

isUSState('Boston')  
// false

.isUSStateAbbr(stateAbbr[string])

Returns true if stateAbbr an abbreviation of a name of one of US state, otherwise returns false

import { isUSStateAbbr } from 'nsp-regexer';

isUSStateAbbr('MA')  
// true

isUSStateAbbr('ca')  
// true

isUSStateAbbr('bos')  
// false

.isUUID(uuid[string])

Returns true if uuid is a valid universally unique identifier (UUID) v1 or v4, otherwise returns false

import { isUUID } from 'nsp-regexer';

isUUID('aafac29e-5816-4904-87ef-3eb5151e0c9a')  
// true

isUUID('66b9bb40-78d1-11e8-adc0-fa7ae01bbebc')  
// true

isUUID('sbfj&&#')  
// false

.isVowel(char[string])

Returns true if char a vowel letter, otherwise returns false

import { isVowel } from 'nsp-regexer';

isVowel('a')  
// true

isVowel('U')  
// true

isVowel('v')  
// false

.isWhiteSpace(char[string])

Returns true if char a white space, otherwise returns false

import { isWhiteSpace } from 'nsp-regexer';

isWhiteSpace(' ')  
// true

isWhiteSpace('  ')  
// false

isWhiteSpace('hello')  
// false

.isYear(number[number|string])

Returns true if number a year, otherwise returns false

import { isYear } from 'nsp-regexer';

isYear('1985')  
// true

isYear('2019')  
// true

isYear('0344')  
// false

Obviously, more to come soon...!

Credits

Source code makes use of several open source packages, a few keys ones include...

  • Babel - To transpile ES6+ syntax to ES5, to run source code in Node and browser
  • Webpack - For module bundling and generating distributing assets
  • ESLint - To lint source code for better readability, syntax consistency and proper formatting
  • CircleCI - Continuous integration middleware to verify incremental builds are always passing

Sources

Lot of different resources came in super handy and useful in turning Regexer into reality. Here are just a few highlights:

Support

Buy Me A Coffee

You May Also Like...

  • focus - A simple, elegant task manager application to help students and computer savvy workers get their work done efficiently and on time
  • lists - Quickly draught down your todos, groceries, chores or any other lists of items quickly #powerOfLists

License

MIT

Contributors

About

A simple and convenient library of functions that leverage regular expressions while hiding its complexity of implementation

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published