2016-05-25 3 views
0

У меня есть строка что-то вроде var myStr = 'Foo Faa {{Foo1234Faa789863Whateva}}'. Я не знаю, что есть между фигурными скобками, и я хочу найти подстроку '{{Foo1234Faa789863Whateva}}', делая что-то вроде myStr.search('{{anycharacter}}'). Пожалуйста, помогите мне, как я могу это сделать?Как найти подстроку 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

Поскольку ОП не упоминал ничего о вложенности. Я думаю, можно с уверенностью предположить, что это не нужно. –

+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" 

Он просто чувствует себя более эффективным для меня, не делали каких-либо испытаний, о которых лучше, оставить комментарий, если вы делаете тест производительности;)

Смежные вопросы