@pelevesque/has_prohibited_substring_after_sums
v0.0.2
Published
Checks if a string has a prohibited substring after given sums.
Maintainers
Readme
has_prohibited_substring_after_sums
Checks if a string has a prohibited substring after given sums.
Related Packages
https://github.com/pelevesque/has_required_substrings_after_sums
https://github.com/pelevesque/has_required_substrings
https://github.com/pelevesque/has_prohibited_substring
https://github.com/pelevesque/has_required_substrings_at_indexes
https://github.com/pelevesque/has_prohibited_substring_at_indexes
Node Repository
https://www.npmjs.com/package/@pelevesque/has_prohibited_substring_after_sums
Installation
npm install @pelevesque/has_prohibited_substring_after_sums
Tests
Standard Style & Unit Tests
npm test
Unit Tests & Coverage
npm run cover
Usage
Parameters
str (required)
prohibitedSubstrings (required)
options (optional) default = { substringsToDigits = null, sumPlainDigits = true, allowLastSubstringToBleed = false }Requiring
const hasProhibitedSubstringAfterSums = require('@pelevesque/has_prohibited_substring_after_sums')Basic Usage
@see https://github.com/pelevesque/sum-digits to understand how the sum is calculated.
prohibitedSubstrings is an object of sum -> substring pairs. true is returned
if at least one substring is found following its associated sum but before the following sum.
const str = '123a45'
const prohibitedSubstrings = { 1: 'a' }
const result = hasProhibitedSubstringAfterSums(str, prohibitedSubstrings)
// result === falseconst str = '123a45'
const prohibitedSubstrings = { 6: 'a' }
const result = hasProhibitedSubstringAfterSums(str, prohibitedSubstrings)
// result === trueconst str = '123bca45'
const requiredSubstrings = { 6: 'a' }
const result = hasRequiredSubstringsAfterSums(str, requiredSubstrings)
// result === true// only one substring needs to match
const str = '123man45adinosaur'
const prohibitedSubstrings = { 6: 'man', 150: 'dinosaur' }
const result = hasProhibitedSubstringAfterSums(str, prohibitedSubstrings)
// result === trueOptions
substringsToDigits
You can use the substringsToDigits option to give numeric values to substrings
so that they are counted during summing.
const str = '123!$$$a'
const prohibitedSubstrings = { 15: 'a' }
const substringsToDigits = { '!': 4, '$$$': 5 }
const result = hasProhibitedSubstringAfterSums(str, prohibitedSubstrings, {
substringsToDigits: substringsToDigits
})
// result === truesumPlainDigits
You can set the sumPlainDigits option to false if you only want to sum
substringsToDigits.
In the following example, 1, 2, and 3 are not summed.
const str = '123!a'
const prohibitedSubstrings = { 4: 'a' }
const substringsToDigits = { '!': 4 }
const sumPlainDigits = false
const result = hasProhibitedSubstringAfterSums(str, prohibitedSubstrings, {
substringsToDigits: substringsToDigits,
sumPlainDigits: sumPlainDigits
})
// result === trueallowLastSubstringToBleed
The allowLastSubstringToBleed option is false by default. It it used when you want
to allow the last substring to be incomplete if the string is too short.
In the following example, the last substring canal starts at the correct index,
but remains incomplete since the string ends. Normally this would return false.
With allowLastSubstringToBleed set to true, it returns true.
const str = '123can'
const prohibitedSubstrings = { 6: 'canal' }
const allowLastSubstringToBleed = true
const result = hasProhibitedSubstringAfterSums(str, prohibitedSubstrings, {
allowLastSubstringToBleed: allowLastSubstringToBleed
})
// result === true