在javascript正则表达式中将字符串替换为括号

时间:2018-03-12 09:08:04

标签: javascript regex

我正在尝试这个

str = "@a@b";
str2 = str.replace(/@/g,'-[' + str + ']');

输出应该是 - [A] - [B]

3 个答案:

答案 0 :(得分:6)

您可以按照以下方式搜索@而不是@,然后替换该组。

/@([^@]+)/g
 @           look for this character literately
  (     )    group, this is the part used for replacing -> $1 in replacement string
   [^@]+     look for one or more not @ characters
          g  global flag, replace all found matches

替换是使用第一组$1进行的。

var str = "@a@b",
    str2 = str.replace(/@([^@]+)/g,'-[$1]');

console.log(str2);

答案 1 :(得分:1)

您可以这样做并替换为第1组-[$1]



var str = "@a@b";
var str2 = str.replace(/@(.)/g, '-[$1]');
console.log(str2);




@(.)

答案 2 :(得分:0)

您可以使用replacer功能



var str = "@a@b";
console.log( str.replace(/@\w/g, m => "[" + m.substring(1) + "]") );