我有一個字符串,如下所示:什麼是正確的文本模式?
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