繁体   English   中英

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

[英]javascript beginner- how to obtain text occurring after/before a string value, in a string variable

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这样的库也适合我...

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

var pos = mainvalue.indexOf(matchwith);

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

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

或之后:

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

简单。 现在,重复一遍。

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

var pieces = mainvalue.split(matchwith);

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

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

有很多方法可以做到这一点,如果没时间考虑使用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),'')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM