Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在关键短语后提取字符串的某一部分_Javascript_Jquery_String - Fatal编程技术网

Javascript 在关键短语后提取字符串的某一部分

Javascript 在关键短语后提取字符串的某一部分,javascript,jquery,string,Javascript,Jquery,String,我想知道最好的方法是在字符串中查找特定短语,然后将其后面的所有内容存储在新变量中。 例如,如果 var str = 'hello how are you doing the what is a dinosaur search Jim carrey'; “search”或“search for”之后的所有内容,在本例中,“jimcarrey”应该存储在一个新的var中——我们称之为val 此外,如果短语“search”或“search for”有两个或多个实例,则只在val中存储最新一个之后的内

我想知道最好的方法是在字符串中查找特定短语,然后将其后面的所有内容存储在新变量中。 例如,如果

var str = 'hello how are you doing the what is a dinosaur search Jim carrey';
“search”或“search for”之后的所有内容,在本例中,“jimcarrey”应该存储在一个新的var中——我们称之为val

此外,如果短语“search”或“search for”有两个或多个实例,则只在val中存储最新一个之后的内容

例如:如果str='welcome I am search pie recipie search quick chili recipie',则val将是'quick chili recipie' 或
如果str=“今天是78度,搜索好天气和晴朗天气,换句话说,这是搜索夏季何时结束的完美日子”,那么val将是“夏季何时结束”。

我不确定这是最好的方法,但它有效,您可以尝试在jsbin更改srt值:

试试这个

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));
试一试

试试这个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]);

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));

工作完美,正是我想要的。非常感谢。我应该复习一下我的正则表达式,因为我要使用.split();你能给我解释一下正则表达式中不同的符号是什么意思吗?您的正则表达式与此正则表达式有什么不同:/\b搜索(for)\b/gif首先,我必须提到,我将我的答案编辑为更好的模式。其次,在我的模式中,您最多可以有一次
for
(在前面的模式中,您可以匹配
search-forfor
,这是错误的)。而且您的模式不匹配
前缀后缀搜索
:)我添加了
{0,1}
,以便更具体地了解我们正在学习的内容:)
  str.split('search').pop() // will do same thing
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]);
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));