当前位置:首页 > JavaScript

js实现回文

2026-02-01 23:01:36JavaScript

判断字符串是否为回文

回文是指正读和反读都相同的字符串。以下是几种在JavaScript中判断字符串是否为回文的方法。

方法一:使用数组反转

将字符串转换为数组,反转后再合并为字符串与原字符串比较。

js实现回文

function isPalindrome(str) {
    const reversed = str.split('').reverse().join('');
    return str === reversed;
}

console.log(isPalindrome("madam")); // true
console.log(isPalindrome("hello")); // false

方法二:使用循环比较字符

通过循环逐个比较字符串的首尾字符。

function isPalindrome(str) {
    for (let i = 0; i < str.length / 2; i++) {
        if (str[i] !== str[str.length - 1 - i]) {
            return false;
        }
    }
    return true;
}

console.log(isPalindrome("racecar")); // true
console.log(isPalindrome("world")); // false

方法三:使用递归

递归比较首尾字符,逐步缩小字符串范围。

js实现回文

function isPalindrome(str) {
    if (str.length <= 1) return true;
    if (str[0] !== str[str.length - 1]) return false;
    return isPalindrome(str.slice(1, -1));
}

console.log(isPalindrome("level")); // true
console.log(isPalindrome("test")); // false

方法四:忽略大小写和非字母数字字符

处理包含大小写或特殊字符的字符串时,可以先标准化。

function isPalindrome(str) {
    const cleaned = str.toLowerCase().replace(/[^a-z0-9]/g, '');
    return cleaned === cleaned.split('').reverse().join('');
}

console.log(isPalindrome("A man, a plan, a canal: Panama")); // true
console.log(isPalindrome("No 'x' in Nixon")); // true

性能优化

对于长字符串,方法二(循环比较)通常性能最优,因为它可以提前终止比较。方法一和方法三可能因反转或递归开销较大。

应用场景

  • 方法一适合简单字符串且代码简洁的场景。
  • 方法二适合对性能要求较高的场景。
  • 方法三适合理解递归概念的练习。
  • 方法四适合处理实际输入中的复杂情况。

标签: 回文js
分享给朋友:

相关文章

js实现复制

js实现复制

使用document.execCommand方法 在较旧的浏览器中,可以使用document.execCommand('copy')实现复制功能。创建一个临时的textarea或input元素,将需要…

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现倒计时

js实现倒计时

使用 setInterval 实现倒计时 通过 setInterval 定时器每秒更新剩余时间,适用于简单倒计时场景。 function countdown(seconds, callback)…

js实现打印

js实现打印

使用window.print()方法实现打印 在JavaScript中,可以通过调用window.print()方法直接触发浏览器的打印功能。这会打开系统的打印对话框,用户可以选择打印机和设置打印选项…

js 实现继承

js 实现继承

原型链继承 通过让子类的原型对象指向父类的实例来实现继承。子类实例可以访问父类原型上的属性和方法。 function Parent() { this.name = 'parent'; } Pa…

js实现抽奖

js实现抽奖

实现抽奖功能的基本思路 抽奖功能的核心是随机选择奖项并展示结果。可以通过数组存储奖项,利用随机数生成索引,最后通过动画增强用户体验。 准备奖项数据 定义一个数组存储奖项信息,每个奖项可以包含名称、…