用 JavaScript 編寫一個迴文程式,使其只允許字母數字值?


迴文是指即使反轉後也與原始字串相同的字串。簡單來說,迴文字串的長度為奇數,第 0 個索引和最後一個索引的元素相同,第 1 個索引與倒數第二個元素相同,依此類推。

迴文包含字母數字元素;這意味著它也包含字母(a-z)和數字(0-9)。

迴文字串必須像這樣 -

var str = "121Malayalam121";
Let’s understand with a suitable example.

讓我們透過一個合適的例子來理解。

示例 1

在上面的示例中,您可以看到我們如何檢查迴文字串。最初,我們建立一個字串,透過 split 方法將其轉換為陣列,然後簡單地反轉陣列,最後連線陣列。

並使用 if 條件我們可以比較這兩個字串。

<!DOCTYPE html> <html> <body> <script> var str = "Hello"; var splitstr = str.split(""); var revstr = splitstr.reverse(); var joinstr = revstr.join(""); if(str == joinstr){ document.write("String is a palindrome string"); } else { document.write("String is not a palindrome string"); } </script> </body> </html>

使用正則表示式

正則表示式是包含一些用於字元、數字或特殊符號的邏輯符號的表示式。透過正則表示式,我們可以匹配或驗證輸入值。

步驟如下

  • 首先我們需要將字串的所有字元都更改為小寫。
  • 稍後我們需要刪除所有非字母數字值。此任務可以透過使用名為 '\W' 的內建正則表示式來完成,或者我們可以構建我們自己的正則表示式。
  • 我們需要將所有非字母數字值替換為空字串("")。此任務可以使用名為 replace() 的內建方法來完成。
  • 一旦我們從字串中獲取了非字母數字值,我們需要檢查它是否在前後方向上都相同。
  • 我們需要使用 string.reverse() 方法反轉精煉後的字串,並將結果字串與原始字串進行比較。
  • 如果兩者相等,則輸出將顯示“true”,否則將顯示“false”。

示例 1

在下面的示例中,我們討論瞭如何執行正則表示式以匹配或替換不可接受的值。

<!DOCTYPE html> <html> <body> <script> var str = '@#elle'; var reg = /[\W_]/g; var newstr = str.toLowerCase().replace(reg, ""); document.write(newstr); var strsplit = newstr.split(""); var revstr = strsplit.reverse(); var joinstr = revstr.join(""); if(joinstr === newstr){ document.write("<br>String is palindrome string"); } else { document.write("<br>String is not palindrome string"); } </script> </body> </html>

示例 2

在這個例子中,我們將從使用者那裡獲取輸入,並確定輸入的字串是否是迴文。

<!DOCTYPE html> <html> <body> <script> var str = prompt('Enter a string'); var reg = /[\W_]/g; var newstr = str.toLowerCase().replace(reg, ""); document.write(newstr); var strsplit = newstr.split(""); var revstr = strsplit.reverse(); var joinstr = revstr.join(""); if(joinstr === newstr){ document.write("<br>String is palindrome string"); } else { document.write("<br>String is not a palindrome string"); } </script> </body> </html>

在上面的程式中,我們使用了正則表示式來匹配和避免輸入值中除了字母數字值之外的其他值,並且我們正在從使用者那裡獲取輸入。

示例 3

在給定的示例中,我們使用不同的正則表示式操作和 replace() 方法來替換字串中的一些不需要的東西,例如特殊字元。然後,我們使用 split()、reverse() 和 join() 等方法來查找回文字串。最後,我們使用 if 條件來檢查字串是否是迴文。

<!DOCTYPE html> <html> <body> <script> var str = prompt('Enter a string'); var reg = /[^A-Za-z0-9]/g; var newstr = str.replace(reg, ""); document.write(newstr); var strsplit = newstr.split(""); var revstr = strsplit.reverse(); var joinstr = revstr.join(""); if(joinstr === newstr){ document.write("<br>String is a palindrome string"); } else { document.write("<br>String is not a palindrome string"); } </script> </body> </html>

更新於: 2022年8月29日

580 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.