正则表达式在单个语句中

时间:2011-07-29 05:53:23

标签: javascript regex

var str = "test's t\r and t\n";
str = str.replace(/'/g, "\'");
str = str.replace(/\r/g, "\\r");
str = str.replace(/\n/g,"\\n");

是否可以在单一陈述中进行这3次替换?

我想逃避这些特殊的角色。没有逃脱它会产生一些问题。 “\ n”以下字符转到下一行。将此作为参数传递时,它不会在服务器中将其作为“\ n”。

3 个答案:

答案 0 :(得分:4)

试试这个:

str.replace(/'|\r|\n/g, function($0) {
    var trans = {"\r":"r", "\n":"n"};
    return "\\" + (trans.hasOwnProperty($0) ? trans[$0] : $0);
})

答案 1 :(得分:2)

您也可以链接它们:

var str = "test's t\r and t\n";
str = str.replace(/'/g, "\'").replace(/\r/g, "\\r").replace(/\n/g,"\\n");

答案 2 :(得分:1)

var str = "test's t\r and t\n";
    str = str.replace(/(\'|\r\n|\r|\n)/g, "\\");
    alert("++++++++++++"+str+"++++++++++++");