2013-11-22 2 views
-4

В JavaScript, у меня есть большая строка, какКак вырезать кусок большой строки с помощью javascript?

str="a lot of lines\n" 
str+="foo\n" 
str+="the stuff I want\n" 
str+="bar and a lot more stuff\n" 

Как поместить только часть:

the stuff I want 

между «Foo» и «бар» в новую строковую переменную?

+0

Если вы знаете, что это между foo и bar, вы можете найти «Регулярные выражения». – Alexander

+0

Я знаю, что это очень простой вопрос, но я не нашел правильных слов, как искать его. Почему этот такой плохой вопрос? Это важно для новичка в javascript! – rubo77

+0

Я думаю, это потому, что ваш вопрос не указал, какой формат вы точно ищете. Есть много возможных решений таким образом, что каждый из них работает с вашим примером, но только некоторые работы в вашем реальном приложении. Вопрос должен быть конкретным, чтобы понять, какой шаблон вы ищете. – Alexander

ответ

4

В зависимости от того, где именно «материал, который Вы хотите» в строке, которую вы можете сделать подобный подход к этому:

var str="a lot of lines\n"; 
str+="foo\n"; 
str+="the stuff I want\n"; 
str+="bar and a lot more stuff\n"; 

var stuff = str.split('\n')[2]; // the stuff i want 

EDIT: Если вы хотите, чтобы материал между Foo и бар, то вы может сделать что-то вроде:

var stuff = str.match(/foo((.|\n)*)bar/)[1]; // contains newlines! 
+0

спасибо 'split' было то, что мне нужно! – rubo77

3
var str = "a lot of lines foo the stuff I want bar and a lot more stuff" 
str.substring(str.indexOf("foo")+3,str.indexOf("bar")) 
+1

Решение не имеет чеков, но я +1 это потому, что кто-то должен сказать, что нет никакого закона, принуждающего регулярное выражение для всех и всего. –

-1
var str="a lot of lines\n"; 
str+="foo\n"; 
str+="the stuff I want\n"; 
str+="bar and a lot more stuff\n"; 

// ------------------------------ 

var myRegex = /foo(.*)bar/; 

if (myRegex.test(str)) { 
    alert(myRegex[0]); 
} 

с регулярным выражением, он должен сделать трюк.

+0

Это не так. Символ '\ n' не соответствует' .'. – Tibos