3
function(input){
    return input.replace(/teststring/ig, "adifferentstring");
}

我想用“a differentstring”替换“teststring”和“teststring\n”

4

4 回答 4

4

尝试

function(input){
   return input.replace(/teststring\n?/ig, "adifferentstring");
}
于 2013-06-04T02:57:32.147 回答
4

在正则表达式中,要匹配特定字符,您可以将其放在括号中:

[\n]

要使匹配成为“可选”,您可以在其后面加上?

[\n]?

在您的确切示例中,您的完整正则表达式可能是:

teststring[\n]?

所以,你的函数看起来像:

function replace(input) {
    return input.replace(/teststring[\n]?/ig, "adifferentstring");
}

我建议在括号中使用匹配的字符,因为这样便于扩展;例如,考虑您想要匹配 Window 的换行符(回车符 + 换行符):

teststring[\r\n]?
于 2013-06-04T02:58:07.463 回答
4

尝试.replace(/teststring[\n]?/ig,"adifferentstring");

于 2013-06-04T03:00:00.533 回答
2

它会是这样的:

var re = /teststring([\n]?)/ig;

那么您的替换语句将如下所示:

return input.replace(re,"adifferentstring");

这是一个显示正则表达式工作的小提琴。

然后是一个显示替换操作工作的小提琴。

编辑:

实际上,进一步考虑问题,如果您的正则表达式确实匹配回车符或换行符,则需要将其放回替换字符串中。我最初发布的相同正则表达式将起作用,但您将需要此替换语句($1在括号中表示第一组。

return input.replace(re,"adifferentstring$1");

小提琴

于 2013-06-04T02:58:39.007 回答