parsa v0.0.12
parsa
parsa is an all purpose module which can parse, validate, extract and more!
- Parse a date string (with known format) into a Javascript Date Object
- Validate an Object against a schema, including: required, min/max length, numerical, string, array and many more
- Validates IPv4 and IPv6 (true/false)
- Parses a URL query string into an Object
- Parses a URL into an Object with Host, Path, Hash, Protocol etc
- Validates whether a string URL is valid
- Validates Email address (true/false)
- Extracts numbers and decimals from string
- Extracts words from string
- Extracts phone numbers from string
- Removes Alpha characters from string
- Removes numeric characters from string
- Changes first character of each word to uppercase
- Checks for a secure password (8 Characters, uppercase, lowercase, number & special characters)
- Many many more...
Jump to section
- parseDate
- validateIp
- validateIpv6
- parseQuery
- parseUrl
- validateUrl
- validateEmail
- extractNum
- extractWords
- extractPhone
- securePassword
- removeAlpha
- removeNumeric
- firstUppercase
- validateObject
- isAlpha
- isNumeric
- isObject
- isArray
- isString
- isFunction
- minLength
- maxLength
- isBetweenLength
parsa is only 8KB compare to Moment.js which is ~51KB. This is handy if using in the browser.
Installation
Browser
<script type="text/javascript" src="dist/parsa.min.js" charset="utf-8"></script>
<script>
console.log('parseDate: 20121125 = ', parsa.parseDate('20121125', 'YYYYMMDD'));
</script>CDN
<script type="text/javascript" src="https://cdn.rawgit.com/mrvautin/parsa/dist/parsa.min.js" charset="utf-8"></script>Node
const parsa = require('parsa');
parsa.parseDate('20121125', 'YYYYMMDD');Tests
npm testBuild
gulp deployparseDate
The parseDate function takes a date string and format string parameters and returns a Javascript Date() Object.
Usage
parsa.parseDate('20121125', 'YYYYMMDD')Returns:
Sun Nov 25 2012 01:00:00 GMT+0100 (CET)
Supported formats
YYYYMMDDYYYYDDMMDDMMYYYYMMDDYYYYMMDDYYDDMMYYMM/DD/YYYYDD/MM/YYYYYYYY/DD/MMDD-MM-YYYYMM-DD-YYYYYYYY-DD-MMYYYY-MM-DDDD MM YYYYMM DD YYYYYYYY MM DDYYYYMMDD HH:MMYYYYDDMM HH:MMYYYYMMDD HH:MM:SSYYYYDDMM HH:MM:SSYYYY-DD-MM HH:MMYYYY-MM-DD HH:MMYYYY/MM/DD HH:MMYYYY/DD/MM HH:MMDo MMMM YYYYDo, MMMM, YYYYMM MMMM YYYY
validateIp
The validateIp function takes an IP address string and returns a boolean value whether it is valid or invalid.
Usage
parsa.validateIp('115.42.150.37')Returns:
true
validateIpv6
The validateIpv6 function takes an IP address string and returns a boolean value whether it is valid or invalid.
Usage
parsa.validateIpv6('2001:db8:3:4::')Returns:
true
parseQuery
The parseQuery function takes a URL and returns an Object of the Query string parameters.
Usage
parsa.parseQuery('http://example.com/product.php?category=4&product_id=2140&query=lcd+tv')Returns:
{
"category": "4",
"product_id": "2140",
"query": "lcd+tv"
}parseUrl
The parseUrl function takes a URL and returns an Object of the URL section.
Usage
parsa.parseQuery('https://www.google.com:80/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash')Returns:
{
"url": "https://www.google.com:80/dir/1/2/search.html?arg=0-a&arg1=1-b&arg3-c#hash",
"protocol": "https",
"host": "www.google.com",
"port": ":80",
"path": "/dir/1/2/",
"file": "search.html",
"query": "?arg=0-a&arg1=1-b&arg3-c",
"hash": "#hash"
}validateUrl
The validateUrl function takes a URL and returns a boolean result.
Usage
parsa.validateUrl('https://www.google.com')Returns:
true
validateEmail
The validateEmail function takes a email address string and returns a boolean value whether it is valid or invalid.
Usage
parsa.validateEmail('hi@gmail.com')Returns:
true
extractNum
The extractNum function takes a string and returns an array of numbers/decimals found in that string.
Usage
parsa.extractNum('This is a10 string with3.14decimals6 and numbers.')Returns:
[
'10',
'3.14',
'6'
]extractWords
The extractWords function takes a string and an array of words and returns an array of matched words in the string.
Usage
var words = ['this', 'some', 'words'];
parsa.extractWords('thisadkfdlfkdisdsstringdfjdkwithdkfdfkldsomefdfdfkdflkwordsjfgjkfg', words)Returns:
[
'this',
'some',
'words'
]extractPhone
The extractPhone function takes a string and returns an array of matched phone numbers.
Usage
parsa.extractPhone('thisadkfdlfkdisdsstringdfjdkwithdkfdfkldsomefdfdfkdflkwordsjfgjkfg', words)Returns:
[
'this',
'some',
'words'
]securePassword
The securePassword function takes a password string returns a boolean whether it's a secure password.
Usage
parsa.securePassword('Testing193!')Password requirements are set to standard defaults:
- at least 8 characters
- must contain at least 1 uppercase letter, 1 lowercase letter, and 1 number
- Can contain special characters
Returns:
true
removeAlpha
The removeAlpha function takes a string and removes all non number characters.
Usage
parsa.removeAlpha('some1number')Returns:
1
removeNumeric
The removeNumeric function takes a string and removes all numbers.
Usage
parsa.removeNumeric('some1number')Returns:
somenumber
firstUppercase
The firstUppercase function takes a string and makes the first character of each word uppercase.
Usage
parsa.firstUppercase('this is a test string')Returns:
This Is A Test String
validateObject
The validateObject function takes an Object and a Schema and returns a validation result with any errors.
Each schema validation requires a name and a rules array. The name property refers to the key in the Object being supplied.
Supported schema rules
isAlphaisNumericisStringminLengthmaxLengthisBetweenLengthisObjectisArrayisRequiredsecurePassword
Usage
let object = {
"test_number": 1234,
"test_string": 'abcdefg',
"test_array": [1, 2, 3],
"test_required": '',
"test_length": 'I am a long string'
};
let schema = [
{
"name": "test_number",
"rules": [
'isNumeric'
]
},
{
"name": "test_string",
"rules": [
'isString',
]
},
{
"name": "test_array",
"rules": [
'isArray'
]
},
{
"name": "test_required",
"rules": [
'isRequired'
]
},
{
"name": "test_length",
"rules": [
'minLength|5',
'maxLength|25'
]
}
];Note: when using a schema validation which requires multiple arguments other than the value (Eg:
minLength,isBetweenLengthetc) you pass arguments using the|character as a separator. For example:isBetweenLengthwould look like:isBetweenLength|0|16which would validate values between 0 and 16 characters in length.
parsa.validateObject(schema, object)Returns:
With errors
{
errors: [
{
property: 'test_string',
message: 'Value is greater than the maximum length'
},
{
property: 'test_required',
message: 'Value is required'
}
],
result: false
}Without errors
{
errors: [],
result: true
}isAlpha
The isAlpha function takes a value and returns a boolean whether it contains only alpha characters.
Usage
parsa.isAlpha('this is a test string')Returns:
true
isNumeric
The isNumeric function takes value and returns a boolean whether it contains only alpha numbers.
Usage
parsa.isNumeric(1234)Returns:
true
isObject
The isObject function takes value and returns a boolean whether it is a Object.
Usage
parsa.isObject({"test": "Object"})Returns:
true
isArray
The isArray function takes value and returns a boolean whether it is a Array.
Usage
parsa.isArray(['abcd', '1234'])Returns:
true
isString
The isString function takes value and returns a boolean whether it is a String.
Usage
parsa.isString('fkdlfkdl3233')Returns:
true
isDefined
The isDefined function takes value and returns a boolean whether the value is null or undefined.
Usage
parsa.isDefined('')Returns:
false
isFunction
The isFunction function takes value and returns a boolean whether it is a Function.
Usage
parsa.isFunction(function test(){})Returns:
true
minLength
The minLength function takes value and a desired length and returns a boolean whether it's is greater than supplied value.
Usage
parsa.minLength('23434fdfdfd', 5)Returns:
true
maxLength
The maxLength function takes value and a desired length and returns a boolean whether it's is less than supplied value.
Usage
parsa.maxLength('23434fdfdfd', 5)Returns:
false
isBetweenLength
The isBetweenLength function takes value, a min length and a max length and returns a boolean whether the value is between the range.
Usage
parsa.maxLength('23434fdf', 5, 10)Returns:
true