Zero dependencies, lightweight and fully functional palindrome checker
Install with npm
npm i @huynhducduy/is-palindrome --save
Install with yarn
yarn add @huynhducduy/is-palindrome
CommonJS (Node)
var isPalindrome = require("@huynhducduy/is-palindrome");
ES Modules
import isPalindrome from "@huynhducduy/is-palindrome/dist/esm.js";
Browser (IIFE)
<script
src="https://cdn.jsdelivr.net/npm/@huynhducduy/is-palindrome@1/dist/iife.js"
crossorigin="anonymous"
></script>
console.log(
isPalindrome(
" Are we not pure? “No sir!” Panama’s moody Noriega brags. “It is garbage!” Irony dooms a man; a prisoner up to new era. ",
{
remove: ["punctuation", "non-printable-ascii", "whitespace"],
caseSensitive: false,
trim: "both",
}
)
);
// true
Also support amd
(RequireJS), umd
, sys
(SystemJS) as well.
Check if the given string is a valid palindrome
Params
str
{Any}: String to check, it's not a valid string, the function will try to convert it, or will throws an exceptionoptions
{Object}: See options objectdebug
{Boolean}: Log debug or not
Return: {Boolean}: True if it is a valid palindrome that match out options, otherwise False
Options pass to is-palindrome. The processing flow is: Normalize -> Remove -> (Transform to lower case) -> Trim (whitespace and trailing)
name | type/values | default | description |
---|---|---|---|
exception | boolean | false | Inform the function to throw exceptions or not |
normalize | boolean | false | Inform the function to normalize string or not |
normalizeForm | "NFC", "NFD", "NFKC", "NFKD" | "NFC" | The form being used to normalize string (if normalize === true), must be one of supported values, otherwise a exception will be thrown or the normalization will be omitted |
remove | string, [string] | [] | remove some kind of char from string, accepted: "non-printable-ascii", "punctuation", "whitespace" |
caseSensitive | boolean | true | Indicate the case sensitivity of the function |
trim | "none", "start", "end", "both" | "none" | Trim trailing whitespace mode |
trimTrailing | string, [string] | Trim trailing characters or strings |
Details: in `punctuation` remove mode, these chars will be remove:
~\`!@#\$%^&\*(){}\[\];:"'<,.>?\/\\|\_+=-`
- Update...
Install dev dependencies:
yarn && yarn test
Compile & Minify:
yarn compile
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue