|
67 | 67 | var alpha = {
|
68 | 68 | 'en-US': /^[A-Z]+$/i,
|
69 | 69 | 'de-DE': /^[A-ZÄÖÜß]+$/i,
|
| 70 | + 'es-ES': /^[A-ZÁÉÍÑÓÚÜ]+$/i, |
| 71 | + 'fr-FR': /^[A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, |
| 72 | + 'nl-NL': /^[A-ZÉËÏÓÖÜ]+$/i, |
| 73 | + 'pt-PT': /^[A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i |
70 | 74 | }
|
71 | 75 | , alphanumeric = {
|
72 | 76 | 'en-US': /^[0-9A-Z]+$/i,
|
73 |
| - 'de-DE': /^[0-9A-ZÄÖÜß]+$/i |
74 |
| - } |
75 |
| - , numeric = /^[-+]?[0-9]+$/ |
| 77 | + 'de-DE': /^[0-9A-ZÄÖÜß]+$/i, |
| 78 | + 'es-ES': /^[0-9A-ZÁÉÍÑÓÚÜ]+$/i, |
| 79 | + 'fr-FR': /^[0-9A-ZÀÂÆÇÉÈÊËÏÎÔŒÙÛÜŸ]+$/i, |
| 80 | + 'nl-NL': /^[0-9A-ZÉËÏÓÖÜ]+$/i, |
| 81 | + 'pt-PT': /^[0-9A-ZÃÁÀÂÇÉÊÍÕÓÔÚÜ]+$/i |
| 82 | + }; |
| 83 | + |
| 84 | + alpha['en-AU'] = alpha['en-US']; |
| 85 | + alpha['en-GB'] = alpha['en-US']; |
| 86 | + alpha['en-HK'] = alpha['en-US']; |
| 87 | + alpha['en-IN'] = alpha['en-US']; |
| 88 | + alpha['en-NZ'] = alpha['en-US']; |
| 89 | + alpha['en-ZA'] = alpha['en-US']; |
| 90 | + alpha['en-ZM'] = alpha['en-US']; |
| 91 | + |
| 92 | + alphanumeric['en-AU'] = alphanumeric['en-US']; |
| 93 | + alphanumeric['en-GB'] = alphanumeric['en-US']; |
| 94 | + alphanumeric['en-HK'] = alphanumeric['en-US']; |
| 95 | + alphanumeric['en-IN'] = alphanumeric['en-US']; |
| 96 | + alphanumeric['en-NZ'] = alphanumeric['en-US']; |
| 97 | + alphanumeric['en-ZA'] = alphanumeric['en-US']; |
| 98 | + alphanumeric['en-ZM'] = alphanumeric['en-US']; |
| 99 | + |
| 100 | + var numeric = /^[-+]?[0-9]+$/ |
76 | 101 | , int = /^(?:[-+]?(?:0|[1-9][0-9]*))$/
|
77 | 102 | , float = /^(?:[-+]?(?:[0-9]+))?(?:\.[0-9]*)?(?:[eE][\+\-]?(?:[0-9]+))?$/
|
78 | 103 | , hexadecimal = /^[0-9A-F]+$/i
|
|
89 | 114 | var base64 = /^(?:[A-Z0-9+\/]{4})*(?:[A-Z0-9+\/]{2}==|[A-Z0-9+\/]{3}=|[A-Z0-9+\/]{4})$/i;
|
90 | 115 |
|
91 | 116 | var phones = {
|
92 |
| - 'zh-CN': /^(\+?0?86\-?)?((13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7})$/, |
93 |
| - 'zh-TW': /^(\+?886\-?|0)?9\d{8}$/, |
94 |
| - 'en-ZA': /^(\+?27|0)\d{9}$/, |
| 117 | + 'en-US': /^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/, |
| 118 | + 'de-DE': /^(\+?49[ \.\-])?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/, |
| 119 | + 'el-GR': /^(\+?30)?(69\d{8})$/, |
95 | 120 | 'en-AU': /^(\+?61|0)4\d{8}$/,
|
| 121 | + 'en-GB': /^(\+?44|0)7\d{9}$/, |
96 | 122 | 'en-HK': /^(\+?852\-?)?[569]\d{3}\-?\d{4}$/,
|
| 123 | + 'en-IN': /^(\+?91|0)?[789]\d{9}$/, |
| 124 | + 'en-NZ': /^(\+?64|0)2\d{7,9}$/, |
| 125 | + 'en-ZA': /^(\+?27|0)\d{9}$/, |
| 126 | + 'en-ZM': /^(\+?26)?09[567]\d{7}$/, |
| 127 | + 'es-ES': /^(\+?34)?(6\d{1}|7[1234])\d{7}$/, |
| 128 | + 'fi-FI': /^(\+?358|0)\s?(4(0|1|2|4|5)?|50)\s?(\d\s?){4,8}\d$/, |
97 | 129 | 'fr-FR': /^(\+?33|0)[67]\d{8}$/,
|
| 130 | + 'nb-NO': /^(\+?47)?[49]\d{7}$/, |
| 131 | + 'nn-NO': /^(\+?47)?[49]\d{7}$/, |
98 | 132 | 'pt-BR': /^(\+?55|0)\-?[1-9]{2}\-?[2-9]{1}\d{3,4}\-?\d{4}$/,
|
99 | 133 | 'pt-PT': /^(\+?351)?9[1236]\d{7}$/,
|
100 |
| - 'el-GR': /^(\+?30)?(69\d{8})$/, |
101 |
| - 'en-GB': /^(\+?44|0)7\d{9}$/, |
102 |
| - 'en-US': /^(\+?1)?[2-9]\d{2}[2-9](?!11)\d{6}$/, |
103 |
| - 'en-ZM': /^(\+?26)?09[567]\d{7}$/, |
104 | 134 | 'ru-RU': /^(\+?7|8)?9\d{9}$/,
|
105 |
| - 'nb-NO': /^(\+?47)?[49]\d{7}$/, |
106 |
| - 'nn-NO': /^(\+?47)?[49]\d{7}$/, |
107 | 135 | 'vi-VN': /^(\+?84|0)?((1(2([0-9])|6([2-9])|88|99))|(9((?!5)[0-9])))([0-9]{7})$/,
|
108 |
| - 'en-NZ': /^(\+?64|0)2\d{7,9}$/, |
109 |
| - 'en-IN': /^(\+?91|0)?[789]\d{9}$/, |
110 |
| - 'es-ES': /^(\+?34)?(6\d{1}|7[1234])\d{7}$/, |
111 |
| - 'de-DE': /^(\+?49[ \.\-])?([\(]{1}[0-9]{1,6}[\)])?([0-9 \.\-\/]{3,20})((x|ext|extension)[ ]?[0-9]{1,4})?$/, |
112 |
| - 'fi-FI': /^(\+?358|0)\s?(4(0|1|2|4|5)?|50)\s?(\d\s?){4,8}\d$/ |
| 136 | + 'zh-CN': /^(\+?0?86\-?)?((13\d|14[57]|15[^4,\D]|17[678]|18\d)\d{8}|170[059]\d{7})$/, |
| 137 | + 'zh-TW': /^(\+?886\-?|0)?9\d{8}$/ |
113 | 138 | };
|
114 | 139 |
|
115 | 140 | // from http://goo.gl/0ejHHW
|
|
451 | 476 |
|
452 | 477 | validator.isAlpha = function (str, locale) {
|
453 | 478 | locale = locale || 'en-US';
|
454 |
| - return alpha[locale].test(str); |
| 479 | + if (locale in alpha) { |
| 480 | + return alpha[locale].test(str); |
| 481 | + } |
| 482 | + throw new Error('Invalid locale \'' + locale + '\''); |
455 | 483 | };
|
456 | 484 |
|
457 | 485 | validator.isAlphanumeric = function (str, locale) {
|
458 | 486 | locale = locale || 'en-US';
|
459 |
| - return alphanumeric[locale].test(str); |
| 487 | + if (locale in alphanumeric) { |
| 488 | + return alphanumeric[locale].test(str); |
| 489 | + } |
| 490 | + throw new Error('Invalid locale \'' + locale + '\''); |
460 | 491 | };
|
461 | 492 |
|
462 | 493 | validator.isNumeric = function (str) {
|
|
0 commit comments