到目前为止我已经
了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
所以我的问题是: 如何将字符附加到某些字符串的末尾?
答案 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)
您需要在替换操作中使用capture和substitution将字符串附加到匹配项。请在此处记下()
括号和$1
参数:
str.replace(/(w1|w2)/, '$1'+c)