javascript beginner-如何在字符串变量中获取字符串值之后/之前发生的文本

时间:2012-08-06 00:45:20

标签: javascript

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中存储了多次,该怎么办?

即。         var mainvalue =“这是第一句。这是第二句。重复这是第一句话。又一句话”;

现在,我想获取'mainvalue'中的文本,该文本出现在'This is first sentence'的最后一次出现之前。

另外,我想获得'mainvalue'中第一次出现'This is first sentence'后出现的文字

我该怎么做?

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

我更喜欢纯JS,但即使使用像Jquery这样的库也没关系......

2 个答案:

答案 0 :(得分:2)

首先获取haystack中子字符串的位置:

var pos = mainvalue.indexOf(matchwith);

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

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

或之后:

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

简单。现在,重复一遍。

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

var pieces = mainvalue.split(matchwith);

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

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

答案 1 :(得分:0)

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

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),'')