Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Javascript

เขียนโปรแกรม palindrome ใน JavaScript เพื่อให้อนุญาตเฉพาะค่าตัวอักษรและตัวเลขหรือไม่


พาลินโดรม

Palindrome คือคำ วลี หรือตัวเลขที่อ่านเหมือนกันย้อนกลับไปข้างหน้า เช่น มาลายาลัม มาดาม พยาบาล ฯลฯ

เราควรจะใช้นิพจน์ทั่วไปที่นี่เพื่ออนุญาตเฉพาะอักขระที่เป็นตัวอักษรและตัวเลขคละกัน "\W" เป็น regex ในตัวที่ทำให้งานของเราง่ายขึ้น มีบางขั้นตอนที่ต้องปฏิบัติตามเพื่อตรวจสอบว่าสตริงที่ระบุเป็น palindrome หรือไม่

ขั้นตอนที่ต้องปฏิบัติตาม

  • ขั้นแรก เราต้องเปลี่ยนอักขระทั้งหมดของสตริงเป็นตัวพิมพ์เล็ก
  • ต่อมา เราต้องลบค่าที่ไม่ใช่ตัวอักษรและตัวเลขคละกันทั้งหมด งานนี้สามารถทำได้โดยใช้นิพจน์ทั่วไป inbuilt ชื่อ '\W' หรือเราสามารถสร้างนิพจน์ทั่วไปของเราเองได้
  • เราจำเป็นต้องแทนที่ค่าที่ไม่ใช่ตัวเลขและตัวอักษรทั้งหมดด้วย nothing("") งานนี้สามารถทำได้โดยใช้วิธีการ inbuilt ที่เรียกว่าแทนที่ ()
  • เมื่อเราเอาค่าที่ไม่ใช่ตัวเลขและตัวอักษรจากสตริง เราจำเป็นต้องตรวจสอบว่าค่านั้นอ่านเหมือนกันในทิศทางย้อนกลับและไปข้างหน้าหรือไม่
  • เราจำเป็นต้องย้อนกลับสตริงที่ปรับปรุงแล้วโดยใช้เมธอด string.reverse() และสตริงผลลัพธ์ควรถูกเปรียบเทียบกับสตริงเดิม
  • หากทั้งคู่มีค่า "จริง" เท่ากัน จะแสดงในเอาต์พุต มิฉะนั้น "เท็จ" จะแสดงขึ้น

ในตัวอย่างต่อไปนี้ แม้จะส่งค่าที่ไม่ใช่ตัวเลขและตัวอักษร เช่น *, &ฯลฯ โปรแกรมจะตรวจสอบค่าตัวอักษรและตัวเลขและแสดงผลลัพธ์

ตัวอย่าง

<html>
<body>
<script>
   function palindrome(str){
   var reg = /[\W_]/g;     // instead of '\W' we also can take "/[^a-zA-Z0-9]+/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>

ผลลัพธ์

true