Package Exports
- parsa
 
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (parsa) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
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