1 | /**
|
2 | * vim:set sw=2 ts=2 sts=2 ft=javascript expandtab:
|
3 | *
|
4 | * # Helpers Module
|
5 | *
|
6 | * This module contains all transversal helpers functions.
|
7 | */
|
8 |
|
9 | module.exports = (function () {
|
10 | ;
|
11 |
|
12 | // Dependencies
|
13 | var ld = require('lodash');
|
14 |
|
15 | /**
|
16 | * ## lodash mixins
|
17 | *
|
18 | * Here are lodash user extensions for MyPads.
|
19 | *
|
20 | * ### isEmail
|
21 | *
|
22 | * `isEmail` checks if given string is an email or not. It takes a value and
|
23 | * returns a boolean.
|
24 | *
|
25 | * For reference, used regular expression is :
|
26 | * /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/;
|
27 | */
|
28 |
|
29 | ld.mixin({ isEmail: function (val) {
|
30 | var rg = new RegExp(['[a-z0-9!#$%&\'*+/=?^_`{|}~-]+',
|
31 | '(?:\\.[a-z0-9!#$%&\'*+/=?^_`{|}~-]+)*@(?:[a-z0-9]',
|
32 | '(?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9]',
|
33 | '(?:[a-z0-9-]*[a-z0-9])?'].join(''), 'i');
|
34 | return (ld.isString(val) && rg.test(val));
|
35 | }});
|
36 |
|
37 | }).call(this);
|