회문 검사기
텍스트가 팰린드롬인지 즉시 확인 · 대소문자·공백·구두점 옵션
회문(팰린드롬) 검사기
팰린드롬(palindrome)은 앞에서 읽으나 뒤에서 읽으나 동일한 문자열입니다. 이 도구는 입력 텍스트를 옵션에 따라 소문자로 바꾸고(toLowerCase()), 공백을 제거하고(replace(/\s+/g,'')), 유니코드 문자·숫자가 아닌 기호를 제거한(\p{L}\p{N} 유니코드 속성 정규식) 뒤, 그 결과를 뒤집어 원본과 문자 단위로 비교하는 방식으로 동작합니다. 유니코드 속성 정규식을 쓰기 때문에 한글이나 한자처럼 아스키 문자가 아닌 텍스트에서도 구두점 제거가 정확히 작동하며, 결과 아래에는 각 위치가 서로 일치하는지 최대 80글자까지 색으로 표시해줍니다.
자주 묻는 질문
팰린드롬이란 정확히 무엇인가요?
문자열을 뒤집어도 원래와 똑같은 경우를 말합니다. racecar, level, 기러기가 대표적인 예이며, 이 도구는 정규화한 문자열을 [...n].reverse().join('')로 뒤집어 원본과 정확히 일치하는지 비교합니다.
대소문자 무시 옵션은 어떻게 비교하나요?
비교 전에 전체 문자열에 toLowerCase()를 적용합니다. 이 옵션을 켜면 'Racecar'처럼 첫 글자만 대문자인 경우에도 소문자 'racecar'로 통일되어 회문으로 판정됩니다.
공백 무시 옵션은 정확히 무엇을 제거하나요?
정규식 /\s+/g로 스페이스, 탭, 줄바꿈을 포함한 모든 공백 문자를 하나도 남기지 않고 제거합니다. 'race car'는 이 단계를 거치면 'racecar'가 되어 공백 없는 형태로 비교됩니다.
구두점 무시 옵션은 어떤 문자를 남기나요?
유니코드 속성 이스케이프 \p{L}(문자)과 \p{N}(숫자)에 해당하지 않는 모든 문자를 제거합니다. 이 방식은 영문 알파벳뿐 아니라 한글, 한자, 키릴 문자 등도 '문자'로 인식하므로 쉼표·콜론·물음표 같은 구두점만 정확히 걸러낼 수 있습니다.
숫자로 된 팰린드롬도 검사할 수 있나요?
네, 이 도구는 입력을 숫자와 문자열을 구분하지 않고 하나의 텍스트로 처리하므로 '12321' 같은 숫자 나열도 그대로 검사할 수 있습니다.
이모지나 특수 유니코드 문자도 정확히 검사되나요?
내부적으로 [...문자열] 스프레드 연산자로 문자를 나누는데, 이는 대부분의 유니코드 코드 포인트 단위로는 정확하지만 국기 이모지나 ZWJ로 결합된 이모지처럼 여러 코드 포인트가 하나의 글자처럼 보이는 경우에는 코드 포인트 단위로 쪼개져 예상과 다른 결과가 나올 수 있습니다.
시각화에서 빨간 칸은 무슨 의미인가요?
정규화된 문자열에서 해당 위치의 문자와 그 대칭 위치(뒤에서 같은 순번)의 문자가 서로 다르다는 뜻이며, 이 칸이 하나라도 있으면 전체 문자열은 팰린드롬이 아닙니다. 시각화는 성능을 위해 최대 80글자까지만 표시됩니다.
공백만 입력하면 어떻게 되나요?
입력값에 trim()을 적용했을 때 빈 문자열이면 결과 카드 자체를 숨기고 아무 판정도 내리지 않습니다. 판정 없음과 '팰린드롬임'을 구분하기 위한 처리입니다.