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/'

为什么这很有用: 如果'xxx'引用任何字符串(如 OP 所说),即:'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 回答