如何从给定的模式开始删除字符串的结尾?

时间:2012-06-08 03:39:09

标签: javascript

假设我有一个这样的字符串:

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

如何使用Javascript和/或jQuery从str开始删除xxx的部分,直至str的结尾?

5 个答案:

答案 0 :(得分:29)

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

答案 1 :(得分:8)

只需:

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");

答案 2 :(得分:3)

试试这个:

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

indexOf会找到xxx的位置,substring会删除你想要的作品。

答案 3 :(得分:2)

尝试使用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'等,,则执行此操作事先不知道它们可能是什么(即:不恒定),接受的答案以及大多数其他答案都不起作用。

答案 4 :(得分:1)

这将包括从字符串的开头到xxx的开头的所有内容。

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