2016-05-25 45 views
0

我有一個像var myStr = 'Foo Faa {{Foo1234Faa789863Whateva}}'這樣的字符串。我不知道大括號之間有什麼,我想通過做類似myStr.search('{{anycharacter}}')的東西來找出子字符串'{{Foo1234Faa789863Whateva}}'。請幫我怎麼做到這一點?如何找到子串javascript

回答

3

使用此

var myStr = 'Foo Faa {{Foo1234Faa789863Whateva}}' 
var match = myStr.match(/{{(.*)}}/) 
if (match) { 
    console.log(match[1]); 
} 
+0

簡單,只需要知道如何,如果你發現反應{{Foo1234Faa789863Whateva}} {{Foo1234Faa789863Whateva}}或{{Foo1234Faa789863Whateva {{Foo1234Faa789863Whateva}}}}更新您的代碼。如果OP需要,當然;) – AxelH

+0

由於OP沒有提到有關嵌套的任何事情。我認爲可以安全地認爲它不是必需的。 –

+0

是的,我只希望他會閱讀我的評論和更新,如果需要;) – AxelH

2

加成@ SGSVenkatesh的回答

match()是一個相當不錯的選擇,但如果你知道這只是第一場比賽是你想要的,你可以使用2個split()功能,而不是比賽。

var myStr = 'Foo Faa {{Foo1234Faa789863Whateva}}'; 
var strSplit = myStr.split("{{"); 
var strSplit2 = strSplit[1].split("}}"); 
console.log(strSplit2[0]); 
// logs "Foo1234Faa789863Whateva" 

你可以把它變成一個函數;

function getFirstMatch(beginsWith, endsWith, myStr){ 
    var strSplit = myStr.split(beginsWith); 
    var strSplit2 = strSplit[1].split(endsWith); 
    return strSplit2[0]; 
} 
//usage 

console.log(getFirstMatch("{{", "}}", "Foo Faa {{Foo1234Faa789863Whateva}}")); 
// logs "Foo1234Faa789863Whateva" 

就覺得這是更有效的對我來說,沒有做任何測試有關,這是更好,如果你做性能測試發表評論;)