0
var mainvalue="This is first sentence. This is 2nd sentence. This is 3rd sentence.";
var matchwith="This is first";

现在我想获取变量“mainvalue”中的文本,该文本出现在存储在变量matchwith中的值之后。这里假设“matchwith”中的值存在于mainvalue中。

我有另一个问题......如果'matchwith'中的值在mainvalue中存储不止一次怎么办?

ie var mainvalue="这是第一句。这是第二句。重复这是第一句。又是一句";

现在,我想获取“这是第一句话”最后一次出现之前出现的“主值”中的文本。

另外,我想获取“这是第一句话”第一次出现之后出现的“主值”中的文本

我该怎么做呢?

最后,我如何确定值“这是第一句话”是否出现在 mainvalue 变量的开头?同样,我如何确定这个值是否出现在 mainvalue 变量的末尾?

我更喜欢纯 JS,但即使使用像 Jquery 这样的库我也可以...

4

2 回答 2

2

首先获取子串在大海捞针中的位置:

var pos = mainvalue.indexOf(matchwith);

然后你可以得到它之前的东西:

var before = mainvalue.substr(0,pos);

或之后:

var after = mainvalue.substr(pos+matchwith.length);

简单的。现在,重复。

在您概述的情况下,您可以在第一个匹配之后获取字符串,然后获取该字符串在第二个匹配之前的部分(因为那个将成为第一个)。不过,更灵活的是:

var pieces = mainvalue.split(matchwith);

现在你可以得到你喜欢的作品的索引。

要查看字符串是否以您的搜索模式开头或结尾,您可以分别查看“匹配之前/之后的字符串”是否为空。

于 2012-08-06T00:49:08.217 回答
0

有很多方法可以做到这一点,如果没有时间考虑使用正则表达式替换,例如:

var mainvalue="This is first sentence. This is 2nd sentence. This is 3rd sentence.";
var matchwith="This is first";
var out=mainvalue.replace(new RegExp(matchwith),'')
于 2012-08-06T00:54:43.927 回答