Palindrome Checker
Test words, phrases, emoji sequences, or multiple lines while choosing exactly which differences count in the comparison.
A QUICK WALKTHROUGH
How to use this tool
- Enter up to 100,000 characters and choose whole-text or per-line checking.
- Choose displayed graphemes or Unicode code points, then set case, whitespace, punctuation, symbol, and diacritic rules.
- Check the result and review the normalized sequence or first mismatching comparison positions.
Normalization before a symmetric comparison
Input is normalized to Unicode NFC before filtering. Optional case-insensitive matching uses JavaScript Unicode lowercase conversion. Diacritic-insensitive mode decomposes text and removes characters with the Unicode Diacritic property before returning to NFC. The comparison then walks inward from both ends and reports the first mismatch in the processed sequence.
Choose what one comparison unit means
Displayed-grapheme mode uses browser grapheme segmentation so combining sequences, flags, emoji modifiers, and joined emoji remain intact. Code-point mode exposes the underlying Unicode scalar sequence. Ignoring whitespace, punctuation, or symbols uses Unicode properties and can change what remains; an empty processed sequence is reported as having no comparable characters instead of being called a palindrome.
GOOD TO KNOW
Common questions
Does “RaceCar” count as a palindrome?
Yes when Ignore uppercase and lowercase is enabled, which is the default. Turn it off for an exact case-sensitive comparison.
Can it check a sentence?
Yes. Ignore whitespace and punctuation to check a phrase such as “A man, a plan, a canal: Panama!” without those separators.
Why can an emoji behave differently between modes?
A displayed emoji may contain several code points joined into one grapheme. Grapheme mode keeps the visible sequence together; code-point mode compares each component separately.