87 lines
3.0 KiB
JavaScript
Executable File
87 lines
3.0 KiB
JavaScript
Executable File
/**
|
|
* ein validator
|
|
*
|
|
* @link http://formvalidation.io/validators/ein/
|
|
* @author https://twitter.com/nghuuphuoc
|
|
* @copyright (c) 2013 - 2015 Nguyen Huu Phuoc
|
|
* @license http://formvalidation.io/license/
|
|
*/
|
|
|
|
(function(root, factory) {
|
|
|
|
"use strict";
|
|
|
|
// AMD module is defined
|
|
if (typeof define === "function" && define.amd) {
|
|
define("validator/ein", ["jquery", "base"], factory);
|
|
} else {
|
|
// planted over the root!
|
|
factory(root.jQuery, root.FormValidation);
|
|
}
|
|
|
|
}(this, function ($, FormValidation) {
|
|
FormValidation.I18n = $.extend(true, FormValidation.I18n || {}, {
|
|
'en_US': {
|
|
ein: {
|
|
'default': 'Please enter a valid EIN number'
|
|
}
|
|
}
|
|
});
|
|
|
|
FormValidation.Validator.ein = {
|
|
// The first two digits are called campus
|
|
// See http://en.wikipedia.org/wiki/Employer_Identification_Number
|
|
// http://www.irs.gov/Businesses/Small-Businesses-&-Self-Employed/How-EINs-are-Assigned-and-Valid-EIN-Prefixes
|
|
CAMPUS: {
|
|
ANDOVER: ['10', '12'],
|
|
ATLANTA: ['60', '67'],
|
|
AUSTIN: ['50', '53'],
|
|
BROOKHAVEN: ['01', '02', '03', '04', '05', '06', '11', '13', '14', '16', '21', '22', '23', '25', '34', '51', '52', '54', '55', '56', '57', '58', '59', '65'],
|
|
CINCINNATI: ['30', '32', '35', '36', '37', '38', '61'],
|
|
FRESNO: ['15', '24'],
|
|
KANSAS_CITY: ['40', '44'],
|
|
MEMPHIS: ['94', '95'],
|
|
OGDEN: ['80', '90'],
|
|
PHILADELPHIA: ['33', '39', '41', '42', '43', '46', '48', '62', '63', '64', '66', '68', '71', '72', '73', '74', '75', '76', '77', '81', '82', '83', '84', '85', '86', '87', '88', '91', '92', '93', '98', '99'],
|
|
INTERNET: ['20', '26', '27', '45', '46'],
|
|
SMALL_BUSINESS_ADMINISTRATION: ['31']
|
|
},
|
|
|
|
/**
|
|
* Validate EIN (Employer Identification Number) which is also known as
|
|
* Federal Employer Identification Number (FEIN) or Federal Tax Identification Number
|
|
*
|
|
* @param {FormValidation.Base} validator The validator plugin instance
|
|
* @param {jQuery} $field Field element
|
|
* @param {Object} options Can consist of the following keys:
|
|
* - message: The invalid message
|
|
* @returns {Object|Boolean}
|
|
*/
|
|
validate: function(validator, $field, options) {
|
|
var value = validator.getFieldValue($field, 'ein');
|
|
if (value === '') {
|
|
return true;
|
|
}
|
|
|
|
if (!/^[0-9]{2}-?[0-9]{7}$/.test(value)) {
|
|
return false;
|
|
}
|
|
// Check the first two digits
|
|
var campus = value.substr(0, 2) + '';
|
|
for (var key in this.CAMPUS) {
|
|
if ($.inArray(campus, this.CAMPUS[key]) !== -1) {
|
|
return {
|
|
valid: true,
|
|
campus: key
|
|
};
|
|
}
|
|
}
|
|
|
|
return false;
|
|
}
|
|
};
|
|
|
|
|
|
return FormValidation.Validator.ein;
|
|
}));
|