如何在javascript中的":"之前删除部分字符串?

Vic*_*tor 93 javascript

如果我有一个字符串"Abc:Lorem ipsum sit amet",我如何使用javascript/jQuery删除":"之前的字符串,包括":".例如,上面的字符串将成为:"Lorem ipsum sit amet".

Nic*_*ver 256

这里不需要jQuery,常规JavaScript会这样做:

var str = "Abc: Lorem ipsum sit amet";
str = str.substring(str.indexOf(":") + 1);
Run Code Online (Sandbox Code Playgroud)

或者,.split().pop()版本:

var str = "Abc: Lorem ipsum sit amet";
str = str.split(":").pop();
Run Code Online (Sandbox Code Playgroud)

或者,正则表达式版本(这个的几个变体):

var str = "Abc: Lorem ipsum sit amet";
str = /:(.+)/.exec(str)[1];
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果字符串中有多个`:`,则第二个变量将返回*last*one之后的字符串而不是其他字符串中的第一个字符串.不幸的是,在JS的`split()`方法中没有split-only-n-times选项,这将允许你做一个Python风格的`.split(':',1)[1]`.(*是*一个可选的`number`参数,但它没有做任何合理的人所期望的.) (18认同)
  • @bobince - 你是对的,我在这里做了一个假设,他有一个一致的“标签:某事”格式,如果不是这种情况,我会选择第一个选项。 (2认同)
  • 您可以根据分隔符拆分和合并删除一些元素。`"Abc:Lorem_ipsum_sit_amet".split(':').slice(1).join('.');` (2认同)

Yas*_*ldi 12

作为尼克回答的后续如果您的字符串包含多次出现:并且您希望仅删除第一次出现之前的子字符串,那么这就是方法:

var str = "Abc:Lorem:ipsum:sit:amet";
arr = str.split(":");
arr.shift();
str = arr.join(":");
// str = "Lorem:ipsum:sit:amet"
Run Code Online (Sandbox Code Playgroud)