如何在双括号内用下划线替换来替换空格?
var str = "This is my text {{an other text}} and blabla {{again again}} ...";
期望的结果:
"This is my text {{an_other_text}} and blabla {{again_again}} ..."
答案 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_ ,]