文本的正确模式是什么?

时间:2014-09-10 12:59:53

标签: javascript regex

我有一个字符串如下:

var str = "Visit {Inside String}"; 

我想将{Inside String}替换为' mySchool'。

我尝试过像下面这样的事情

var n = str.replace(/[{][^\s*][^\*}]/,'mySchool');

但这并没有像预期的那样发挥作用。

任何指针?

4 个答案:

答案 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)

这不是你想要的。