Javascript 如何使用比较运算符确定字符是否为字母数字?
我正在接受freecodecamp挑战“检查回文”。编写一个函数来检查给定字符串是否为回文。这是我的密码:Javascript 如何使用比较运算符确定字符是否为字母数字?,javascript,Javascript,我正在接受freecodecamp挑战“检查回文”。编写一个函数来检查给定字符串是否为回文。这是我的密码: function palindrome(str) { str = str.toLowerCase(); for(var i=0; i<str.length; i++){ if((str[i] > 'z' || str[i] < 'a') && (str[i] < '0' || str[i] > '
function palindrome(str) {
str = str.toLowerCase();
for(var i=0; i<str.length; i++){
if((str[i] > 'z' || str[i] < 'a') && (str[i] < '0' || str[i] > '9')){
str = str.replace(str[i], '');
}
}
for(i=0; i<str.length/2; i++){
if(str[i] != str[str.length-1-i]){
return false;
}
}
return true;
}
该功能工作正常。我的第一个方法不正确吗?回文忽略了大小写、空格、标点和换行符等 因此: 一个男人。一个计划。运河:巴拿马 是一个有效的回文 因此,在尝试计算字符串之前,需要去除字符串中的所有标点和空格,以便实际计算的字符串为: 巴拿马阿曼那普兰运河酒店 然后就可以很容易地对剩余的字符执行任何您想要的比较
不久前我做了其中一个测试,包括一些测试,可能值得一看:您能给出一些示例输入+输出吗是的,您的第一个代码片段不正确。它在迭代的同时改变字符串-缩短它。@cartant我现在明白了。非常感谢。@Jonasw palindrome(“赛车”)应该返回真值。回文(“非回文”)应返回false。
function palindrome(str) {
str = str.toLowerCase().replace(/[\W_]/g, '');
// for(var i=0; i<str.length; i++){
// if((str[i] > 'z' || str[i] < 'a') && (str[i] < '0' || str[i] > '9')){
// str = str.replace(str[i], '');
// }
// }
for(i=0; i<str.length/2; i++){
if(str[i] != str[str.length-1-i]){
return false;
}
}
return true;
}