diff --git a/src/lib/isBoolean.js b/src/lib/isBoolean.js index 9fddc2b48..40ebd3504 100644 --- a/src/lib/isBoolean.js +++ b/src/lib/isBoolean.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesArray'; const defaultOptions = { loose: false }; const strictBooleans = ['true', 'false', '1', '0']; @@ -8,8 +9,8 @@ export default function isBoolean(str, options = defaultOptions) { assertString(str); if (options.loose) { - return looseBooleans.includes(str.toLowerCase()); + return includes(looseBooleans, str.toLowerCase()); } - return strictBooleans.includes(str); + return includes(strictBooleans, str); } diff --git a/src/lib/isDecimal.js b/src/lib/isDecimal.js index 488668a52..474eff2b0 100644 --- a/src/lib/isDecimal.js +++ b/src/lib/isDecimal.js @@ -1,6 +1,6 @@ import merge from './util/merge'; import assertString from './util/assertString'; -import includes from './util/includes'; +import includes from './util/includesArray'; import { decimal } from './alpha'; function decimalRegExp(options) { diff --git a/src/lib/isEmail.js b/src/lib/isEmail.js index 6db00195c..0d16c24a9 100644 --- a/src/lib/isEmail.js +++ b/src/lib/isEmail.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesArray'; import merge from './util/merge'; import isByteLength from './isByteLength'; @@ -96,11 +97,11 @@ export default function isEmail(str, options) { const domain = parts.pop(); const lower_domain = domain.toLowerCase(); - if (options.host_blacklist.includes(lower_domain)) { + if (includes(options.host_blacklist, lower_domain)) { return false; } - if (options.host_whitelist.length > 0 && !options.host_whitelist.includes(lower_domain)) { + if (options.host_whitelist.length > 0 && !includes(options.host_whitelist, lower_domain)) { return false; } diff --git a/src/lib/isIdentityCard.js b/src/lib/isIdentityCard.js index d34ddae26..34d60cebf 100644 --- a/src/lib/isIdentityCard.js +++ b/src/lib/isIdentityCard.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesArray'; import isInt from './isInt'; const validators = { @@ -277,7 +278,7 @@ const validators = { const parityBit = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2']; - const checkAddressCode = addressCode => provincesAndCities.includes(addressCode); + const checkAddressCode = addressCode => includes(provincesAndCities, addressCode); const checkBirthDayCode = (birDayCode) => { const yyyy = parseInt(birDayCode.substring(0, 4), 10); diff --git a/src/lib/isJSON.js b/src/lib/isJSON.js index d3731e337..5c51dd31c 100644 --- a/src/lib/isJSON.js +++ b/src/lib/isJSON.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesArray'; import merge from './util/merge'; const default_json_options = { @@ -15,7 +16,7 @@ export default function isJSON(str, options) { } const obj = JSON.parse(str); - return primitives.includes(obj) || (!!obj && typeof obj === 'object'); + return includes(primitives, obj) || (!!obj && typeof obj === 'object'); } catch (e) { /* ignore */ } return false; } diff --git a/src/lib/isLatLong.js b/src/lib/isLatLong.js index 5c53c23aa..bdc9f7272 100644 --- a/src/lib/isLatLong.js +++ b/src/lib/isLatLong.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesString'; import merge from './util/merge'; const lat = /^\(?[+-]?(90(\.0+)?|[1-8]?\d(\.\d+)?)$/; @@ -15,7 +16,7 @@ export default function isLatLong(str, options) { assertString(str); options = merge(options, defaultLatLongOptions); - if (!str.includes(',')) return false; + if (!includes(str, ',')) return false; const pair = str.split(','); if ((pair[0].startsWith('(') && !pair[1].endsWith(')')) || (pair[1].endsWith(')') && !pair[0].startsWith('('))) return false; diff --git a/src/lib/isURL.js b/src/lib/isURL.js index 3d2b1df3e..00efa9ec5 100644 --- a/src/lib/isURL.js +++ b/src/lib/isURL.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesString'; import isFQDN from './isFQDN'; import isIP from './isIP'; @@ -63,11 +64,11 @@ export default function isURL(url, options) { return false; } - if (!options.allow_fragments && url.includes('#')) { + if (!options.allow_fragments && includes(url, '#')) { return false; } - if (!options.allow_query_components && (url.includes('?') || url.includes('&'))) { + if (!options.allow_query_components && (includes(url, '?') || includes(url, '&'))) { return false; } diff --git a/src/lib/isUUID.js b/src/lib/isUUID.js index c026ca78c..da6a4de44 100644 --- a/src/lib/isUUID.js +++ b/src/lib/isUUID.js @@ -1,4 +1,5 @@ import assertString from './util/assertString'; +import includes from './util/includesArray'; const uuid = { 1: /^[0-9A-F]{8}-[0-9A-F]{4}-1[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i, @@ -11,6 +12,6 @@ const uuid = { export default function isUUID(str, version) { assertString(str); - const pattern = uuid[![undefined, null].includes(version) ? version : 'all']; + const pattern = uuid[!includes([undefined, null], version) ? version : 'all']; return !!pattern && pattern.test(str); } diff --git a/src/lib/util/includes.js b/src/lib/util/includesArray.js similarity index 100% rename from src/lib/util/includes.js rename to src/lib/util/includesArray.js diff --git a/src/lib/util/includesString.js b/src/lib/util/includesString.js new file mode 100644 index 000000000..41a50bba8 --- /dev/null +++ b/src/lib/util/includesString.js @@ -0,0 +1,3 @@ +const includes = (str, val) => str.indexOf(val) !== -1; + +export default includes;