我有一个字符串如下:
var str = "Visit {Inside String}";
我想将{Inside String}替换为' mySchool'。
我尝试过像下面这样的事情
var n = str.replace(/[{][^\s*][^\*}]/,'mySchool');
但这并没有像预期的那样发挥作用。
任何指针?
答案 0 :(得分:4)
那么为什么不在不创建RegExp
实例的情况下替换它呢?
var n = str.replace("{Inside String}",'mySchool');
答案 1 :(得分:2)
您可以使用
var n = str.replace(/\{[^}]*\}/,'mySchool');
请注意,如果您有多个替代品,则必须使用g标志:
var n = str.replace(/\{[^}]*\}/g,'mySchool');
答案 2 :(得分:1)
这是一个更好的正则表达式:
var n = str.replace(/\{.+?\}/, 'mySchool');
答案 3 :(得分:0)
尝试以下方法:
var n = str.replace(/[{][^}]*[^}]/g,'mySchool');
您的正则表达式/[{][^\s*][^\*}]/
可以理解为:
(A opening brace) + (not a space nor a star char) + (not a backslash, star or closing brace char)
这不是你想要的。