首頁 >web前端 >js教程 >js如何判斷是否為回文字串?

js如何判斷是否為回文字串?

青灯夜游
青灯夜游原創
2018-11-17 17:43:545926瀏覽

js如何判斷是否為回文字串?這篇文章就跟大家介紹js判斷一個字串是否為回文字串的方法。有一定的參考價值,有需要的朋友可以參考一下,希望對你們有幫助。

首先我們來了解什麼是回文字串?

回文字串就是,我們從開始到結束讀取它,和從末尾到開始讀取它是一樣的。例:ABCBA。

接下面我們將介紹如何輕鬆地使用JavaScript函數來判斷一個字串是否為回文字串。

其實判斷一個字串是否為回文的邏輯非常簡單:只需要從字串中刪除特殊字元並反轉結果。如果字串相等(過濾後的字串和反向過濾後的字串)那麼這個字串就是回文字串,是不是很容易!

我們來看看JavaScript是如何遵循上述邏輯實現效果的。

1、使用基本功能來進行驗證

依照上面提到的邏輯,我們只需建立一個包含我們需要字串的變數。首先,我們將字串的所有字元轉換為小寫版本,然後我們刪除特殊字符,最後比較字串,如果它們相等,函數將返回一個確認它的布林值:

/** 
 *定义判断给定字符串是否为回文的函数isPalindrome()。
 * 
 * @returns {Boolean}
 */
function isPalindrome(str){
    var normalized = str.toLowerCase().match(/[a-z]/gi).reverse();
    return normalized.join('') === normalized.reverse().join('');
}

因此,您可以使用強制轉換的isPalindrome方法,該方法提供一個字串作為第一個參數,這將傳回一個布林值,該布林值會注意到它是否是:

if(isPalindrome("Go dog.")){
    console.log("它是回文");
}else{
    console.log("它不是回文");
}

#2、使用原型函數進行驗證

如果你想要判斷一個字串是否是回文而又不提供它作為任何函數的第一個參數,只要該變數是一個字串,你就可以通過擴展String原型並為它創建自己的函數來創建一個快捷方式。透過這種方式,你可以呼叫isPalindrome方法,就好像它是字串的屬性一樣,例如:

/** 
 * 允许校验的字符串扩展函数
 * 字符串是否为回文。
 * 
 * @returns {Boolean}
 */
 String.prototype.isPalindrome = function () {
    var normalized = this.toLowerCase().match(/[a-z]/gi).reverse();
    return normalized.join('') === normalized.reverse().join('');
 }

因此,您可以使用isPalindrome方法為字串強制轉換,這將傳回一個布林值,注意到它是否:

if("Go dog.".isPalindrome()){
    console.log("它是回文");
}else{
    console.log("它不是回文");
}

總結:以上就是本篇文章的全部內容,希望能對大家的學習有所幫助。

以上是js如何判斷是否為回文字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn