获取javascript中选定关键字之前的所有字符

获取javascript中选定关键字之前的所有字符,javascript,Javascript,我需要获得所选关键字之前的所有字符 例: 需要什么 expected results = 'for this stack overflow question' const str=“这是这个堆栈溢出问题的示例语句” const searchTerm=“堆栈” 常量字符串=str.split(“”); //如果您非常确定str`must`包含搜索词 const idx=strings.findIndex(item=>item==searchTerm); //如果您非常确定idx必须大于2 co

我需要获得所选关键字之前的所有字符

例:

需要什么

expected results = 'for this stack overflow question'
const str=“这是这个堆栈溢出问题的示例语句”
const searchTerm=“堆栈”
常量字符串=str.split(“”);
//如果您非常确定str`must`包含搜索词
const idx=strings.findIndex(item=>item==searchTerm);
//如果您非常确定idx必须大于2

console.log(strings.slice(idx-2.join)(“”)您可以拆分字符串,然后搜索搜索项的索引。如果索引不等于-1,则只需对数组执行联接操作。 尝试以下方法。此外,如果搜索词被空格分隔,则可以使用
replace()
替换搜索词

const str=“这是这个堆栈溢出问题的示例语句”
const searchTerm=“堆栈溢出”;
var strReplace=str.replace(搜索术语“&&”);
var strArray=strReplace.split(“”);
var指数=strArray.indexOf('&&');
如果(索引!=-1){
索引=索引-2>=0?索引-2:索引;
var result=strArray.slice(index.join)(“”).replace(“&&&”,searchTerm);
}

控制台日志(结果)
您可以使用array
spilt()
slice()
join()
方法来实现这一点:

let str=“这是这个堆栈溢出问题的示例语句”;
让searchTerm=“堆栈”
函数getSubstring(str){
var arrStr=str.split(“”);
var-termIndex=arrStr.indexOf(搜索术语);
var-res;
如果(termIndex-2>-1){
res=arrStr.slice(termIndex-2).join(“”);
}否则{
res=arrStr.slice(termIndex.join)(“”);
}
返回res;
}
log(getSubstring(str));
str=“堆栈溢出问题”

log(getSubstring(str))执行以下操作:

const str=“这是这个堆栈溢出问题的示例语句”
const searchTerm=“堆栈”;
var strArray=str.split(“”);
var searchTermIndex=strArray.indexOf(searchTerm);
如果(搜索终端索引-2>-1){
var result=strArray.slice(searchTermIndex-2).join(“”);
控制台日志(结果);
} 

可以很好地处理单个单词。。但是,当我们添加两个单词,并为搜索词留出空间时。。那就不工作了,伙计..ye.不行,因为我们把str用空格分开了.可能是你的问题是用一个单词来区分不同的工作没问题。。但是,当我们添加两个单词,并为搜索词留出空间时。。然后不是工作伙伴..用一个词就可以了。。但是,当我们添加两个单词,并为搜索词留出空间时。。然后不是工作伙伴。@lpradhap首先使用
replace()
。检查更新后的代码,现在告诉我它是否有效。
expected results = 'for this stack overflow question'