Palindrome
Từ/cụm từ/số đọc xuôi ngược giống nhau (VD: "madam", "nurses run"). Chỉ xét ký tự alphanumeric (chữ/số), bỏ qua dấu câu, khoảng trắng, case.
Các bước
- Chuyển chuỗi về lowercase.
- Loại bỏ non-alphanumeric bằng regex
/[\W_]/ghoặc/[^a-zA-Z0-9]+/g. - Dùng
replace()thay bằng chuỗi rỗng. - Đảo ngược chuỗi đã lọc:
split("").reverse().join(""). - So sánh chuỗi đảo với chuỗi gốc lọc → true/false.
Ví dụ
<html> <body> <script> function palindrome(str){ var reg = /[\W_]/g; var smstr = str.toLowerCase().replace(reg, ""); var reversed = smstr.split("").reverse().join(""); if(reversed === smstr){ document.write("true"); } else { document.write("false"); } } palindrome("a929a*/(';-=,.*"); </script> </body> </html>
Kết quả
true
Giải thích: Chuỗi gốc có nhiều ký tự đặc biệt, sau lọc chỉ còn "a929a" → palindrome.