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

ここで、変数matchwithに格納された値の後に発生する変数'mainvalue'のテキストを取得したいと思います。...ここでは、'matchwith'の値がmainvalueに存在すると想定しています。

私が持っている別の質問...'matchwith'の値がmainvalueに複数回格納されている場合はどうなりますか?

すなわちvarmainvalue="これは最初の文です。これは2番目です。これの繰り返しは最初の文です。さらに別の文";

ここで、「これは最初の文です」の最後の出現の前に出現する「mainvalue」のテキストを取得したいと思います。

また、「これは最初の文です」の最初の出現後に発生する「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);

単純。さて、複製に移りましょう。

概説した場合、最初の一致の後に文字列を取得し、次に2番目の一致の前にあるその文字列の部分を取得できます(その文字列が最初の一致になるため)。ただし、より柔軟なのは次のとおりです。

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 に答える