forked from enviPath/enviPy
Current Dev State
This commit is contained in:
57
static/js/ketcher2/node_modules/validator/lib/isFQDN.js
generated
vendored
Normal file
57
static/js/ketcher2/node_modules/validator/lib/isFQDN.js
generated
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
'use strict';
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = isFDQN;
|
||||
|
||||
var _assertString = require('./util/assertString');
|
||||
|
||||
var _assertString2 = _interopRequireDefault(_assertString);
|
||||
|
||||
var _merge = require('./util/merge');
|
||||
|
||||
var _merge2 = _interopRequireDefault(_merge);
|
||||
|
||||
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
||||
|
||||
var default_fqdn_options = {
|
||||
require_tld: true,
|
||||
allow_underscores: false,
|
||||
allow_trailing_dot: false
|
||||
};
|
||||
|
||||
function isFDQN(str, options) {
|
||||
(0, _assertString2.default)(str);
|
||||
options = (0, _merge2.default)(options, default_fqdn_options);
|
||||
|
||||
/* Remove the optional trailing dot before checking validity */
|
||||
if (options.allow_trailing_dot && str[str.length - 1] === '.') {
|
||||
str = str.substring(0, str.length - 1);
|
||||
}
|
||||
var parts = str.split('.');
|
||||
if (options.require_tld) {
|
||||
var tld = parts.pop();
|
||||
if (!parts.length || !/^([a-z\u00a1-\uffff]{2,}|xn[a-z0-9-]{2,})$/i.test(tld)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (var part, i = 0; i < parts.length; i++) {
|
||||
part = parts[i];
|
||||
if (options.allow_underscores) {
|
||||
part = part.replace(/_/g, '');
|
||||
}
|
||||
if (!/^[a-z\u00a1-\uffff0-9-]+$/i.test(part)) {
|
||||
return false;
|
||||
}
|
||||
if (/[\uff01-\uff5e]/.test(part)) {
|
||||
// disallow full-width chars
|
||||
return false;
|
||||
}
|
||||
if (part[0] === '-' || part[part.length - 1] === '-') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
module.exports = exports['default'];
|
||||
Reference in New Issue
Block a user