ColdFusion ReReplace

时间:2014-05-06 14:53:39

标签: regex coldfusion

如果字符串的第一个和最后一个字符不是/,我正在尝试将正斜杠添加到文本字符串的开头和结尾。

在我的剧本中我有:

if(!reFind('\/\S\/', myString){
    myString = '/' & arrayToList(listToArray(myString, '/\'), '/') & '/');
}

我想运行ReReplace而不是列出到数组,然后添加斜杠。

2 个答案:

答案 0 :(得分:2)

使用数组列出并列出到数组可能会删除内斜杠,因此您不希望这样做。相反,用正则表达式替换前导和尾部斜杠。

<cfscript>
    string1 = "foobar";
    string2 = "/foobar/";
    string3 = "foo/bar";
    string4 = "/foo/bar/";

    function addSlashes (str) {
        return "/" & reReplace(str,"^/|/$","","all") & "/";
    }

    writeDump(addSlashes(string1));
    writeDump(addSlashes(string2));
    writeDump(addSlashes(string3));
    writeDump(addSlashes(string4));
</cfscript>

您可以将上述内容粘贴到http://www.trycf.com

答案 1 :(得分:2)

您应该能够将^/?(.*?)/?$替换为/\1/

请参阅http://www.regexper.com/

上的直观说明

注意我使用的模式@ www.regexper.com略有不同,因为我需要为JS模式转义/;对于CFML而言则不然。