2014-09-10 78 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'); 
相關問題