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这样的库也没关系......
答案 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),'')