暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

JavaScript 算法和数据结构项目:「01] 回文检查器

路条编程 2021-05-28
510
欢迎关注路条编程网站,经过前面的学习,我们积累了不少编程经验,本专题我们将练习回文检查器、罗马数字转换器、凯撒密码、电话号码验证器、收银机等项目,对前面学习的知识的理解巩固。

回文检查器

本次练习我们需要写一个函数 palindrome ,它接收一个参数 str,该函数对给定的字符串进行回文判断,那么返回true,否则返回false。。

palindrome(回文),指在忽略标点符号、大小写和空格的前提下,正着读和反着读一模一样。

注意:检查回文时,你需要先除去所有非字母数字的字符(标点、空格和符号)并且将所有字符转换成字母大写或字母小写。

我们将会传入不同格式的字符串,例如:"racecar"、"RaceCar"、"race CAR"等等。

我们也会传入一些包含特殊符号的字符串,例如"2A3*3a2","2A3 3a2"和"2_A3*3#A2"

在介绍具体方法之前,我们先介绍下字符串的 toLowerCase、 replace 方法。

toLowerCase() 函式会回传将字符串转换为英文小写字母后的结果。

语法:
str.toLowerCase()

回传值:
回传一组将原字串英文内容转换成英文小写字母后的结果。

replace() 方法返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。

语法:
str.replace(regexp|substr, newSubStr|function)

参数:
regexp (pattern)
一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。
substr (pattern)
一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。
newSubStr (replacement)
用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。参考下面的使用字符串作为参数。
function (replacement)
一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。

返回值:
一个部分或全部匹配由替代模式所取代的新的字符串。

具体代码如下所示:

function palindrome(str) {


str = str.toLowerCase().replace(/[\W_]/g, '');
for(var i = 0, len = str.length - 1; i < len/2; i++) {
if(str[i] !== str[len-i]) {
return false;
}
}
return true;
}


console.log( palindrome("race car" ));
// => true

今天就讲到这里,如果有问题需要咨询,大家可以直接留言或扫下方二维码关注公众号。也可以添加 happyzjp 微信受邀加入学习社群,我们会尽力为你解答。练习网站已经正式上线,大家可以登陆网站 http://www.icoderoad.com 进行文章中示例的练习。


文章转载自路条编程,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论