2016-05-25 11 views
0

Ich habe eine Zeichenfolge so etwas wie var myStr = 'Foo Faa {{Foo1234Faa789863Whateva}}'. Ich weiß nicht, was zwischen den geschweiften Klammern ist, und ich möchte Teilzeichenfolge '{{Foo1234Faa789863Whateva}}' herausfinden, indem ich etwas wie myStr.search('{{anycharacter}}') mache. Bitte hilf mir wie ich das machen kann?Wie finde ich die Teilzeichenfolge JavaScript

Antwort

3

verwenden

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

einfach, muss nur wissen, wie sie reagieren, wenn Sie gefunden {{Foo1234Faa789863Whateva}} {{Foo1234Faa789863Whateva}} oder {{Foo1234Faa789863Whateva {{Foo1234Faa789863Whateva}}}} um Ihren Code zu aktualisieren. Wenn das OP es natürlich braucht;) – AxelH

+0

Da hat das OP nichts über Nesting erwähnt. Ich denke, es ist sicher anzunehmen, dass es nicht benötigt wird. –

+0

Ja, ich hoffe nur, er wird meinen Kommentar lesen und bei Bedarf updaten;) – AxelH

2

Zusatz @ SGSVenkatesh Antwort

match() ist eine ziemlich gute Wahl, aber wenn Sie wissen, dass nur das erste Spiel ist, was Sie wollen, können Sie 2 split() Funktionen verwenden, anstatt Spiel.

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

Sie können es in eine Funktion als;

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" 

Es fühlt sich einfach effizienter für mich, keinen Test zu tun hat, über das besser ist, einen Kommentar posten, wenn Sie Performance-Test zu tun;)

Verwandte Themen