我有一个字符串,如下所示:什么是正确的文本模式?
var str = "Visit {Inside String}";
我想要替换{里面string}里用 'mySchool'。
我试着做一些像下面
var n = str.replace(/[{][^\s*][^\*}]/,'mySchool');
但预期这是行不通的。
任何指针?
我有一个字符串,如下所示:什么是正确的文本模式?
var str = "Visit {Inside String}";
我想要替换{里面string}里用 'mySchool'。
我试着做一些像下面
var n = str.replace(/[{][^\s*][^\*}]/,'mySchool');
但预期这是行不通的。
任何指针?
您可以使用
var n = str.replace(/\{[^}]*\}/,'mySchool');
注意,如果你有一个以上的更换,以你将不得不使用g标志:
var n = str.replace(/\{[^}]*\}/g,'mySchool');
谢谢,这个工程。 – user3792795 2014-09-10 15:58:52
尝试以下操作:
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)
这不是你想要的。
那么为什么不直接替换而不创建RegExp
实例呢?
var n = str.replace("{Inside String}",'mySchool');
这是一个更好的正则表达式:
var n = str.replace(/\{.+?\}/, 'mySchool');
我不明白你试过这样做'[^ \ S *]'。 – 2014-09-10 13:02:46
为什么你想使用正则表达式?你可以简单地用'str.replace('{Inside String}','mySchool')'替换字符串。 – Werner 2014-09-10 13:06:36