- 驗證迴文串
給定一個字符串,驗證它是否是迴文串,只考慮字母和數字字符,可以忽略字母的大小寫。
說明:本題中,我們將空字符串定義爲有效的迴文串。
示例 1:
輸入: “A man, a plan, a canal: Panama”
輸出: true
示例 2:
輸入: “race a car”
輸出: false
解題思路:用正則表達式分割出來之後要記得把字符串中字母全部轉成大寫或者小寫,之後再反轉對比。
具體解析:
s.replace(/[^0-9a-zA-Z]/g,""):replace就是替換的意思,
[a-z]
字符範圍。匹配指定範圍內的任意字符。例如,“[a-z]”可以匹配“a”到“z”範圍內的任意小寫字母字符。
注意:只有連字符在字符組內部時,並且出現在兩個字符之間時,才能表示字符的範圍; 如果出字符組的開頭,則只能表示連字符本身.
[^a-z]
負值字符範圍。匹配任何不在指定範圍內的任意字符。例如,“[^a-z]”可以匹配任何不在“a”到“z”範圍內的任意字符。
找到S裏面不是0-9 a-z A-Z 的字符,也就是非數字非字母,然後把它替換成第二個參數“”,這樣實現除去字符串中的其他字符功能,比如說 AAA,aa就變成AAAaa,但是這個替換不會改變原來的S字符串,S依然是AAA,aa
/**
* @param {string} s
* @return {boolean}
*/
var isPalindrome = function(s) {
let str = s.replace(/[^0-9a-zA-Z]/g,"").toLowerCase();
s = str;
str = str.split('').reverse().join('');
return s==str;
};