/var/www/qr4y.com/server/delivery/node_modules/validator/es/lib
NameSizeModeActions
util/-0755rm
alpha.js53370644editdlrm
blacklist.js1860644editdlrm
contains.js5240644editdlrm
equals.js1490644editdlrm
escape.js3100644editdlrm
isAfter.js3660644editdlrm
isAlpha.js9150644editdlrm
isAlphanumeric.js9500644editdlrm
isAscii.js2420644editdlrm
isBase32.js2460644editdlrm
isBase58.js3040644editdlrm
isBase64.js6500644editdlrm
isBefore.js3670644editdlrm
isBIC.js4970644editdlrm
isBoolean.js4860644editdlrm
isBtcAddress.js3470644editdlrm
isByteLength.js9050644editdlrm
isCreditCard.js10220644editdlrm
isCurrency.js30440755editdlrm
isDataURI.js9890644editdlrm
isDate.js46480644editdlrm
isDecimal.js8440644editdlrm
isDivisibleBy.js2020644editdlrm
isEAN.js21550644editdlrm
isEmail.js56580644editdlrm
isEmpty.js3460644editdlrm
isEthereumAddress.js1760644editdlrm
isFloat.js7760644editdlrm
isFQDN.js16950644editdlrm
isFullWidth.js2340644editdlrm
isHalfWidth.js2330644editdlrm
isHash.js4210644editdlrm
isHexadecimal.js1890644editdlrm
isHexColor.js2140644editdlrm
isHSL.js9840644editdlrm
isIBAN.js52000644editdlrm
isIdentityCard.js110050644editdlrm
isIMEI.js9590644editdlrm
isIn.js11670644editdlrm
isInt.js8620644editdlrm
isIP.js28460644editdlrm
isIPRange.js10540644editdlrm
isISBN.js11610644editdlrm
isISIN.js15840644editdlrm
isISO4217.js15680644editdlrm
isISO8601.js21840644editdlrm
isISO31661Alpha2.js18490644editdlrm
isISO31661Alpha3.js20370644editdlrm
isISRC.js2370644editdlrm
isISSN.js7080644editdlrm
isJSON.js9190644editdlrm
isJWT.js3870644editdlrm
isLatLong.js9100644editdlrm
isLength.js9710644editdlrm
isLicensePlate.js38360644editdlrm
isLocale.js3130644editdlrm
isLowercase.js1490644editdlrm
isMACAddress.js5820644editdlrm
isMagnetURI.js2930644editdlrm
isMD5.js1590644editdlrm
isMimeType.js19280644editdlrm
isMobilePhone.js74850644editdlrm
isMongoId.js2060644editdlrm
isMultibyte.js2520644editdlrm
isNumeric.js4000644editdlrm
isOctal.js1650644editdlrm
isPassportNumber.js29760644editdlrm
isPort.js1230644editdlrm
isPostalCode.js24890644editdlrm
isRFC3339.js10560644editdlrm
isRgbColor.js8420644editdlrm
isSemVer.js5970644editdlrm
isSlug.js2120644editdlrm
isStrongPassword.js28560644editdlrm
isSurrogatePair.js2050644editdlrm
isTaxID.js395210644editdlrm
isUppercase.js1490644editdlrm
isURL.js57540644editdlrm
isUUID.js7020644editdlrm
isVariableWidth.js2560644editdlrm
isVAT.js4930644editdlrm
isWhitelisted.js2550644editdlrm
ltrim.js3600644editdlrm
matches.js2800644editdlrm
normalizeEmail.js63490644editdlrm
rtrim.js6270644editdlrm
stripLow.js2880644editdlrm
toBoolean.js2490644editdlrm
toDate.js1840644editdlrm
toFloat.js1320644editdlrm
toInt.js1510644editdlrm
trim.js1440644editdlrm
unescape.js4960644editdlrm
whitelist.js1870644editdlrm
Edit: /var/www/qr4y.com/server/delivery/node_modules/validator/es/lib/isEmail.js (5658B)
import assertString from './util/assertString'; import merge from './util/merge'; import isByteLength from './isByteLength'; import isFQDN from './isFQDN'; import isIP from './isIP'; var default_email_options = { allow_display_name: false, require_display_name: false, allow_utf8_local_part: true, require_tld: true, blacklisted_chars: '', ignore_max_length: false, host_blacklist: [] }; /* eslint-disable max-len */ /* eslint-disable no-control-regex */ var splitNameAddress = /^([^\x00-\x1F\x7F-\x9F\cX]+)]/.test(display_name_without_quotes); if (contains_illegal) { // if contains illegal characters, // must to be enclosed in double-quotes, otherwise it's not a valid display name if (display_name_without_quotes === display_name) { return false; } // the quotes in display name must start with character symbol \ var all_start_with_back_slash = display_name_without_quotes.split('"').length === display_name_without_quotes.split('\\"').length; if (!all_start_with_back_slash) { return false; } } return true; } export default function isEmail(str, options) { assertString(str); options = merge(options, default_email_options); if (options.require_display_name || options.allow_display_name) { var display_email = str.match(splitNameAddress); if (display_email) { var display_name = display_email[1]; // Remove display name and angle brackets to get email address // Can be done in the regex but will introduce a ReDOS (See #1597 for more info) str = str.replace(display_name, '').replace(/(^<|>$)/g, ''); // sometimes need to trim the last space to get the display name // because there may be a space between display name and email address // eg. myname // the display name is `myname` instead of `myname `, so need to trim the last space if (display_name.endsWith(' ')) { display_name = display_name.substr(0, display_name.length - 1); } if (!validateDisplayName(display_name)) { return false; } } else if (options.require_display_name) { return false; } } if (!options.ignore_max_length && str.length > defaultMaxEmailLength) { return false; } var parts = str.split('@'); var domain = parts.pop(); var lower_domain = domain.toLowerCase(); if (options.host_blacklist.includes(lower_domain)) { return false; } var user = parts.join('@'); if (options.domain_specific_validation && (lower_domain === 'gmail.com' || lower_domain === 'googlemail.com')) { /* Previously we removed dots for gmail addresses before validating. This was removed because it allows `multiple..dots@gmail.com` to be reported as valid, but it is not. Gmail only normalizes single dots, removing them from here is pointless, should be done in normalizeEmail */ user = user.toLowerCase(); // Removing sub-address from username before gmail validation var username = user.split('+')[0]; // Dots are not included in gmail length restriction if (!isByteLength(username.replace(/\./g, ''), { min: 6, max: 30 })) { return false; } var _user_parts = username.split('.'); for (var i = 0; i < _user_parts.length; i++) { if (!gmailUserPart.test(_user_parts[i])) { return false; } } } if (options.ignore_max_length === false && (!isByteLength(user, { max: 64 }) || !isByteLength(domain, { max: 254 }))) { return false; } if (!isFQDN(domain, { require_tld: options.require_tld })) { if (!options.allow_ip_domain) { return false; } if (!isIP(domain)) { if (!domain.startsWith('[') || !domain.endsWith(']')) { return false; } var noBracketdomain = domain.substr(1, domain.length - 2); if (noBracketdomain.length === 0 || !isIP(noBracketdomain)) { return false; } } } if (user[0] === '"') { user = user.slice(1, user.length - 1); return options.allow_utf8_local_part ? quotedEmailUserUtf8.test(user) : quotedEmailUser.test(user); } var pattern = options.allow_utf8_local_part ? emailUserUtf8Part : emailUserPart; var user_parts = user.split('.'); for (var _i = 0; _i < user_parts.length; _i++) { if (!pattern.test(user_parts[_i])) { return false; } } if (options.blacklisted_chars) { if (user.search(new RegExp("[".concat(options.blacklisted_chars, "]+"), 'g')) !== -1) return false; } return true; }