用双括号内的下划线替换空格

时间:2016-08-30 13:08:35

标签: javascript

如何在双括号内用下划线替换来替换空格?

var str = "This is my text {{an other text}} and blabla {{again again}} ...";  

期望的结果:

"This is my text {{an_other_text}} and blabla {{again_again}} ..."

2 个答案:

答案 0 :(得分:0)

var str = "This is my text {{an other text}} and blabla {{again again}}";

function replaceChar(str, replacement) {

  if (typeof str !== "string" || typeof replacement !== "string") return str;

  var pattern = /\{\{([^\}\}]+)\}\}/gi,
    arr = str.match(pattern);

  arr.map(function(match) {
    str = str.replace(match, match.replace(/\s/g, replacement));
  });

  return str;
}

console.log(replaceChar(str, "_"));

答案 1 :(得分:0)

使用此正则表达式:

str.replace(/ (?=[\w\s]*}})/g, '_');

仅当您使用其中一个[A-Za-z0-9_ ]个字符作为大括号间的文字时,此功能才有效。

/(?=     # lookahead
[\w\s]*  # possible characters between braces
}})      # until it finds }}
/g       # replace all matches (global)

没有必要的背后隐藏,因为{不是可能的角色之一。

如果你想在大括号之间的文本中有更多可能的字符e。 G。 ,使用此正则表达式:

str.replace(/ (?=[A-Za-z0-9_ ]*}})/g, '_');

,添加到[A-Za-z0-9_ ] => [A-Za-z0-9_ ,]