2013-03-21 4 views
3

Мне было интересно, как лучше всего найти определенную фразу в строке, а затем взять все после нее и сохранить ее в новой переменной. Например, если ...Извлечь определенную часть строки после ключевой фразы

var str = 'hello how are you doing the what is a dinosaur search Jim carrey'; 

Все после того, как «поиск» или «искать», в этом случае «Jim Carrey» должен храниться в новом варьировали давайте назовем его вал.

Кроме того, если есть два или более экземпляра фразы «поиск» или «поиск», то сохраняйте только то, что находится после последнего в val.

Например: если Str = «Добро пожаловать Я искать пирог поиск recipie быстрого перец чили recipie», то вал будет «быстро recipie чили» Или Если Str = «Сегодня поиск 78 градусов хорошей погоды и солнечной, другими слова идеальный день для поиска, когда заканчивается лето », тогда val будет« когда закончится лето ».

ответ

5

Попробуйте RegExp:

var str = 'Today is 78 degrees search good weather and sunny in other words a perfect day for search for when does summer end'; 
var arr = str.split(/ search (for){0,1}/); 

alert(arr[arr.length-1]); 
+0

отлично работает и как я хотел. Спасибо. Я должен очистить мое регулярное выражение, потому что я собирался использовать .split(); – IMUXIxD

+0

Не могли бы вы объяснить мне, что означает символ в регулярном выражении? В чем разница между вашим регулярным выражением и этим:/\ bsearch (for) \ b/gi – IMUXIxD

+0

Прежде всего, я должен упомянуть, что я отредактировал свой ответ на лучший шаблон. во-вторых, по моему шаблону вы можете иметь 'for' не более одного раза (в предыдущем шаблоне вы могли бы сопоставить« поиск forforforfor », который был неправильным). И ВАША шаблон не соответствует 'PREFIXsearch forPOSTFIX' :) –

0

я не уверен, что это лучший способ сделать это, но это работает, и вы можете попытаться изменить SRT значение в jsbin: http://jsbin.com/uguzup/1/edit

var str = 'Today is 78 degrees search good weather and sunny in other words a perfect day for search for when does summer end'; 
var val = str.split('search for').slice(-1)[0].split('search').slice(-1)[0] 
0

Попробуйте

var str = 'welcome I am search pie recipie search quick chili recipie'; 
    var param='search'; 
    var n=str.lastIndexOf(param); 
    alert(str.substring(n+param.length,str.length)); 
1

попробовать

var str = "welcome I am search pie recipie search quick chili recipie"; 
var m = str.split('search'); 
alert(m.slice(-1)); 

или

str.split('search').pop() // will do same thing 

working DEMO

1

ответ Legendinmaking возвращает фразу с пробелом в начале и вернуть все после поиска или поиска для использования этой

var str = 'welcome I am search pie recipie search quick chili recipie'; 
var param='search'; 
var param1='search for'; 
var n=str.lastIndexOf(param); 
var n1=str.lastIndexOf(param1); 
n=Math.max(n,n1); 
alert(str.substring(n+param.length + 1,str.length)); 
Смежные вопросы