2014-09-10 79 views
0

我有一个字符串,如下所示:什么是正确的文本模式?

var str = "Visit {Inside String}"; 

我想要替换{里面string}里用 'mySchool'。

我试着做一些像下面

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

但预期这是行不通的。

任何指针?

+0

我不明白你试过这样做'[^ \ S *]'。 – 2014-09-10 13:02:46

+0

为什么你想使用正则表达式?你可以简单地用'str.replace('{Inside String}','mySchool')'替换字符串。 – Werner 2014-09-10 13:06:36

回答

2

您可以使用

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

注意,如果你有一个以上的更换,以你将不得不使用g标志:

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

谢谢,这个工程。 – user3792795 2014-09-10 15:58:52

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) 

这不是你想要的。

4

那么为什么不直接替换而不创建RegExp实例呢?

var n = str.replace("{Inside String}",'mySchool'); 
1

这是一个更好的正则表达式:

var n = str.replace(/\{.+?\}/, 'mySchool'); 
相关问题