summaryrefslogtreecommitdiff
path: root/includes/external/addressbook/node_modules/validator/lib/isISSN.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/external/addressbook/node_modules/validator/lib/isISSN.js')
-rw-r--r--includes/external/addressbook/node_modules/validator/lib/isISSN.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/includes/external/addressbook/node_modules/validator/lib/isISSN.js b/includes/external/addressbook/node_modules/validator/lib/isISSN.js
new file mode 100644
index 0000000..eee87b3
--- /dev/null
+++ b/includes/external/addressbook/node_modules/validator/lib/isISSN.js
@@ -0,0 +1,37 @@
+"use strict";
+
+Object.defineProperty(exports, "__esModule", {
+ value: true
+});
+exports.default = isISSN;
+
+var _assertString = _interopRequireDefault(require("./util/assertString"));
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
+
+var issn = '^\\d{4}-?\\d{3}[\\dX]$';
+
+function isISSN(str) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+ (0, _assertString.default)(str);
+ var testIssn = issn;
+ testIssn = options.require_hyphen ? testIssn.replace('?', '') : testIssn;
+ testIssn = options.case_sensitive ? new RegExp(testIssn) : new RegExp(testIssn, 'i');
+
+ if (!testIssn.test(str)) {
+ return false;
+ }
+
+ var digits = str.replace('-', '').toUpperCase();
+ var checksum = 0;
+
+ for (var i = 0; i < digits.length; i++) {
+ var digit = digits[i];
+ checksum += (digit === 'X' ? 10 : +digit) * (8 - i);
+ }
+
+ return checksum % 11 === 0;
+}
+
+module.exports = exports.default;
+module.exports.default = exports.default; \ No newline at end of file