1.0.2 • Published 6 years ago
@pelevesque/is-anagram v1.0.2
is-anagram
Checks if a string is an anagram with extra features not seen in other anagram checkers.
Node Repository
https://www.npmjs.com/package/@pelevesque/is-anagram
Installation
npm install @pelevesque/is-anagram
Tests
| Command | Description |
|---|---|
npm test or npm run test | All Tests Below |
npm run cover | Standard Style |
npm run standard | Coverage |
npm run unit | Unit Tests |
Usage
Parameters
str1 (required)
str2 (required)
options (optional) default = { groupBy: 1, canonicalize: false, substringsToIgnore: [] }Requiring
const isAnagram = require('@pelevesque/is-anagram')Basic Usage
const result = isAnagram('elvis', 'lives')
// result === trueIgnoring Certain Substrings
const str1 = '1 elv@@@@is $$$'
const str2 = '$$$ li@@@@ves 1'
const opts = { substringsToIgnore : ['1', '$$$', '@@@@', ' '] }
const result = isAnagram(str1, str2, opts)
// result === trueconst str1 = 'christmas tree'
const str2 = 'search, set, trim'
const opts = { substringsToIgnore: [',', ' '] }
const result = isAnagram(str1, str2, opts)
// result === trueCanonicalize Strings
Can be used to make strings case insensitive and remove diacritics, homoglyphs, and graphemes.
const str1 = 'ChristmasTree'
const str2 = 'SearchSetTrim'
const opts = { canonicalize: true }
const result = isAnagram(str1, str2, opts)
// result === trueconst str1 = 'AmwÉ'
const str2 = 'arnwe'
const opts = { canonicalize: true }
const result = isAnagram(str1, str2, opts)
// result === trueGrouping by Length
String elements become grouped by a certain length.
const str1 = 'aabbcc'
const str2 = 'abcabc'
const opts = { groupBy: 2 }
const result = isAnagram(str1, str2, opts)
// result === falseconst str1 = 'aabbcc'
const str2 = 'bbaacc'
const opts = { groupBy: 2 }
const result = isAnagram(str1, str2, opts)
// result === trueLeftover characters like d are kept in the anagram.
const str1 = 'aabbccd'
const str2 = 'bbdaacc'
const opts = { groupBy: 2 }
const result = isAnagram(str1, str2, opts)
// result === trueExplicit Grouping
You can specify each element of the anagram by using explicit grouping.
const str1 = '22boy$$a'
const str2 = '2b2yo$a$'
const opts = { groupBy: ['22', 'boy', '$$', 'a'] }
const result = isAnagram(str1, str2, opts)
// result === falseconst str1 = '22boy$$a'
const str2 = '$$aboy22'
const opts = { groupBy: ['22', 'boy', '$$', 'a'] }
const result = isAnagram(str1, str2, opts)
// result === trueconst str1 = '1212'
const str2 = '2121'
const opts = { groupBy: ['1', '2', '12'] }
const result = isAnagram(str1, str2, opts)
// result === falseconst str1 = '1212'
const str2 = '1221'
const opts = { groupBy: ['1', '2', '12'] }
const result = isAnagram(str1, str2, opts)
// result === trueMixtures
const str1 = ' AmÉ23 45$$'
const str2 = '2345n$$ e$$ar '
const opts = {
groupBy: ['ar', 'n', 'e', '2345'],
substringsToIgnore: [' ', '$$'],
canonicalize: true
}
const result = isAnagram(str1, str2, opts)
// result === true