JavaScript에서 회문을 확인하는 완벽한 방법

1876 단어 palindromejavascript


먼저 회문이 무엇인지 명확히합시다.

Wikipedia에 따르면 "회문(palindrome)은 단어, 숫자, 구문 또는 앞뒤로 읽어도 같은 문자 시퀀스입니다."

위의 정의에서 "읽다"라는 단어가 핵심입니다. 구두점과 대소 문자 때문입니다.

위의 내용은 우리가 취해야 할 처음 두 단계가 무엇인지에 대한 단서입니다. 구두점과 공백을 제거하고 소문자를 강제합니다.

그런 다음 문자열을 비교하여 그 반대인지 확인할 수 있습니다.

기능은 다음과 같습니다.

 const isPalindrome = (str) => {
  // Force to string
  // Eliminate punctuation and spaces
  // Force lower case
  // Split
  let arr = str.toString().replace(/[^A-Za-z0-9_]/g, "").toLowerCase().split('');

  // Join into one word
  let joined = arr.join('');

  // Reverse and join into one word
  let reverseJoined = arr.reverse().join('');

  //compare
  return joined == reverseJoined;
}

검사할 표현식이 문자열인지 확인한 후 str.replace(/[^A-Za-z0-9_]/g, "")를 사용하여 구두점과 공백을 제거하고 toLowerCase()를 사용하여 소문자를 강제 적용합니다.

결과 문자열에서 배열을 만들어야 하므로 배열을 뒤집은 다음 문자열로 결합하여 문자열의 반대를 얻습니다. 이것은 "원본"배열입니다.

let arr = str.toString().replace(/[^A-Za-z0-9_]/g, "").toLowerCase().split('');

"원본", 소문자, 공백 없음, 구두점 문자열 없음:

let joined = arr.join('');

반전된 문자열:

let reverseJoined = arr.reverse().join('');

마지막으로 부울을 반환하는 비교:

return joined == reverseJoined;

이것으로 우리는 단어와 구문에도 작동하는 회문 검사기 만들기를 완료했습니다. 실제로 작동하는 것을 볼 수 있습니다here.

좋은 웹페이지 즐겨찾기