Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
回文的Javascript正则表达式?_Javascript_Regex_String_Replace - Fatal编程技术网

回文的Javascript正则表达式?

回文的Javascript正则表达式?,javascript,regex,string,replace,Javascript,Regex,String,Replace,注意:我在这里尝试删除所有特殊字符、空格和大写字符,并检查传递的参数是否为回文。我只是想知道是否有办法使正则表达式简洁到只有一行 <code> function palindrome(str) { // Good luck! str=str.toLowerCase(); str=str.replace(/[^\Wa-z0-9]/gi," "); str=str.replace(/[.,\s]/g, ''); str=str.replace(/\

注意:我在这里尝试删除所有特殊字符、空格和大写字符,并检查传递的参数是否为回文。我只是想知道是否有办法使正则表达式简洁到只有一行

<code>
function palindrome(str) {
    // Good luck!
    str=str.toLowerCase();
    str=str.replace(/[^\Wa-z0-9]/gi," ");
    str=str.replace(/[.,\s]/g, '');
    str=str.replace(/\//g, "");
    str=str.replace("(", "").replace(")", "").replace("0-0", "").replace(":-", "").replace(":","");
    var a=str.split("");
    a=a.reverse();
    a=a.join("");

    if(str===a){
        return true;
    }
    else {
        return false;
    }
}

palindrome("0_0 (: /-\ :) 0-0");

</code>

将字符串小写并删除所有非字母数字字符。

我认为您对如何实际解决该问题感到困惑。您是否正在尝试查看任意字符串是否前后相同?您传入的字符串不包含任何单词,并且不是回文。还不清楚你认为字符串中的一个有效字符。提问时请尽量具体。
函数回文(str){str=str.toLowerCase().replace(/[^a-z0-9]/g,”);return str==str.split(“”.reverse().join(“”)true:false;}
@Andy Ray我想我说得很具体,我想检查传递的参数是否是回文的,现在当我传递给定字符串时,如果满足所有其他条件,即没有大写字母、没有特殊字符和空格,那么它将是回文的。我在讨论中也提到了这一点。。。。下一次,我将尝试在这里写下整个问题,以便更清楚,感谢您在这些规则下提供的帮助。在这个示例中,您只是测试字符串
“0000”
是否是回文。因为没有字母,所以将其小写是没有意义的。此外,这不会删除大写字母,只需将它们转换为小写。这就是你想要的吗?这是一个奇怪的测试用例,因为它都是同一个字符。@AndyRay在这些规则下,我不仅仅是在测试,我还测试了许多其他字符串,比如,“一个人,一个计划,一条运河,巴拿马”。。。而且,这不是我创建的测试用例,而是我试图解决的其他地方,我确实解决了它,但因为我对javascript相当陌生,所以我无法为这个测试用例找到合适的解决方案。
str = str.toLowerCase().replace( /[^a-z0-9]/g, '' );