欢迎关注路条编程网站,经过前面的学习,我们积累了不少编程经验,本专题我们将练习回文检查器、罗马数字转换器、凯撒密码、电话号码验证器、收银机等项目,对前面学习的知识的理解巩固。本次练习我们需要写一个函数 palindrome ,它接收一个参数 str,该函数对给定的字符串进行回文判断,那么返回true,否则返回false。。palindrome(回文),指在忽略标点符号、大小写和空格的前提下,正着读和反着读一模一样。注意:检查回文时,你需要先除去所有非字母数字的字符(标点、空格和符号)并且将所有字符转换成字母大写或字母小写。我们将会传入不同格式的字符串,例如:"racecar"、"RaceCar"、"race CAR"等等。我们也会传入一些包含特殊符号的字符串,例如"2A3*3a2","2A3 3a2"和"2_A3*3#A2"在介绍具体方法之前,我们先介绍下字符串的 toLowerCase、 replace 方法。toLowerCase() 函式会回传将字符串转换为英文小写字母后的结果。回传一组将原字串英文内容转换成英文小写字母后的结果。replace() 方法返回一个由替换值(replacement)替换部分或所有的模式(pattern)匹配项后的新字符串。模式可以是一个字符串或者一个正则表达式,替换值可以是一个字符串或者一个每次匹配都要调用的回调函数。如果pattern是字符串,则仅替换第一个匹配项。str.replace(regexp|substr, newSubStr|function)
一个RegExp 对象或者其字面量。该正则所匹配的内容会被第二个参数的返回值替换掉。一个将被 newSubStr 替换的 字符串。其被视为一整个字符串,而不是一个正则表达式。仅第一个匹配项会被替换。用于替换掉第一个参数在原字符串中的匹配部分的字符串。该字符串中可以内插一些特殊的变量名。参考下面的使用字符串作为参数。一个用来创建新子字符串的函数,该函数的返回值将替换掉第一个参数匹配到的结果。参考下面的指定一个函数作为参数。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 进行文章中示例的练习。