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 - Fatal编程技术网

Javascript 查找两个相同字符串之间的文本

Javascript 查找两个相同字符串之间的文本,javascript,Javascript,是否有任何库可以从字符串中获取介于两个单词或符号之间的文本?以下是我想做的: var string=“彩虹文本彩虹” //我想找到“文本”,因为它位于“彩虹”两个词之间 getTextBetween(“彩虹”,函数(文本){ console.log(text)//应该记录“text” }) 如果没有图书馆,我该怎么办? 谢谢。以下是使用split()实现这一点的方法。如果只有两个相同的,它就会工作 函数getTextBetween(字符串、单词){ //如果字符串中不存在单词2次 if(st

是否有任何库可以从字符串中获取介于两个单词或符号之间的文本?以下是我想做的:

var string=“彩虹文本彩虹”
//我想找到“文本”,因为它位于“彩虹”两个词之间
getTextBetween(“彩虹”,函数(文本){
console.log(text)//应该记录“text”
})
如果没有图书馆,我该怎么办?
谢谢。

以下是使用
split()
实现这一点的方法。如果只有两个相同的,它就会工作

函数getTextBetween(字符串、单词){ //如果字符串中不存在单词2次 if(string.indexOf(word)==string.lastIndexOf(word)| | string.indexOf(word)==-1)返回“” 返回string.split(word)[1].trim(); } log(getTextBetween(“彩虹文本”“彩虹文本之后的彩虹文本”); log(getTextBetween(“彩虹前的文本,这是彩虹之间的,这不是彩虹之间的”,“彩虹”));
log(getTextBetween(“rainbo这是在彩虹之间,这不是在彩虹之间”)下面使用RegEx的类似操作将实现结果,而不管单词文本在字符串中的位置如何,从而使其更具可扩展性

正如你所说的,你正在寻找文字


这里有一个稍微灵活一点的版本:

const betweenTokens=(t1,t2=t1)=>
(s,i=s.indexOf(t1),j=s.indexOf(t2,i+1))=>
j>-1?s、 子串(i+t1.length,j):“
console.log(介于kens('rainbow')('rainbow Text rainbow'))

console.log(betweenTokens(“”)(“contains comment”)
到目前为止您尝试了什么?就像我对正则表达式不是很在行一样,我尝试了一些不起作用的东西搜索区分大小写?搜索是否会在字符串
“RAINbow Text RAINbow”
中找到
“Text”
?另外-这至少有助于展示您的尝试,但Maheer Ali给出了一个完美的答案,希望为您节省**所以,去学习算法,然后您将解决比这更难的问题。我得到了未可知的语法错误:意外令牌=>抱歉,在我运行它后重新格式化错误。现在修好了。我认为这是最好的答案
var str = "rainbow Text rainbow"
var str2 = "rainbow rainbow Text rainbow rainbow"
var str3 = "rainbow rainbow rainbow Text rainbow"

getTextBetween(str,"Text")
getTextBetween(str2, "Text")
getTextBetween(str3, "Text")

function getTextBetween(str,word) {
    let pat = new RegExp(word)
    let result = pat.exec(str)
    console.log(result[0])
}