在特定字符串的末尾添加一个字母

时间:2013-12-05 18:13:27

标签: javascript regex

到目前为止我已经

str.replace(/w1/, "w1"+c).replace(/w2/, "w2"+c) ... .replace(/wn/, "wn"+c);

其中wn是我要追加c的实例,而str是一些输入的字符串。

我想到了这样的事情

str.replace(/w1|w2...wn)/, "str"+c);

但是返回带有添加的c

的字符串的所有

e.g。

var str = "foo";
str.replace(/foo|bar/, str+"something");
// -> "foosomething"
//but for
var str = "hello foo";
// -> "hello hello foosomething"
//which repeats all of the string, the problem

所以我的问题是: 如何将字符附加到某些字符串的末尾?

2 个答案:

答案 0 :(得分:3)

您需要捕获要替换的内容,以便在替换中使用捕获的值:

var str = "w1";
var c = "foo";
var replaced = str.replace(/w([0-9]+)/g, '$1'+c);
// output 1foo

如果要匹配整个w * n *字符串,只需将正则表达式更改为:

str.replace(/(w[0-9]+)/, '$1'+c);

将输出w1foo

答案 1 :(得分:0)

您需要在替换操作中使用capturesubstitution将字符串附加到匹配项。请在此处记下()括号和$1参数:

str.replace(/(w1|w2)/, '$1'+c)