22

私がこのような文字列を持っているとしましょう:

var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";

JavascriptやjQueryを使用して、でstr始まる部分をxxx最後まで削除するにはどうすればよいstrですか?

4

5 に答える 5

44
str.substring( 0, str.indexOf( "xxx" ) );
于 2012-06-08T03:41:19.677 に答える
10

ただ:

s.substring(0, s.indexOf("xxx"))

無効な入力と一致するパターンの欠如を処理するより安全なバージョンは次のようになります。

function trump(str, pattern) {
  var trumped = "";  // default return for invalid string and pattern

  if (str && str.length) {
    trumped = str;
    if (pattern && pattern.length) {
      var idx = str.indexOf(pattern);

      if (idx != -1) {
        trumped = str.substring(0, idx);
      }
    }
  }
  return (trumped);
}

あなたが呼ぶだろう:

var s = trump("/abcd/efgh/ijkl/xxx-1/xxx-2", "xxx");
于 2012-06-08T03:44:00.767 に答える
7

使用してみてくださいstring.slice(start, end)

削除する文字の正確な数がわかっている場合は、例から次のようにします。

var str = "/abcd/efgh/ijkl/xxx-1/xxx-2";
new_str = str.slice(0, -11);

これにより、str_new == '/abcd/efgh/ijkl/'

これが役立つ理由:参照が(OPが言ったように)任意の文字列を参照して いる場合'xxx'、つまり'abc'、 '1k3'などで、それらが何であるかを事前に知らない場合(つまり、定数ではない)、受け入れられた回答、および他のほとんどは機能しません。

于 2016-06-02T15:32:51.320 に答える
4

これを試して:

str.substring(0, str.indexOf("xxx"));

indexOfの位置を見つけて、xxx必要substringな部分を切り取ります。

于 2012-06-08T03:44:05.707 に答える
1

これにより、文字列の先頭からの先頭まですべてがかかりますxxx

str.substring(0,str.indexOf("xxx"));
于 2012-06-08T03:43:25.783 に答える