【问题标题】:How to remove part of a string before a ":" in javascript?如何在javascript中删除“:”之前的部分字符串?
【发布时间】:2010-11-03 22:44:43
【问题描述】:

如果我有一个字符串Abc: Lorem ipsum sit amet,我如何使用JavaScript/jQuery 删除: 之前的字符串,包括:。例如上面的字符串会变成:Lorem ipsum sit amet

【问题讨论】:

  • 我添加了 javascript 标签,因为它在问题中并且比 jquery 与问题更相关。

标签: javascript


【解决方案1】:

这里不需要 jQuery,普通的 JavaScript 就可以了:

var str = "Abc: Lorem ipsum sit amet";
str = str.substring(str.indexOf(":") + 1);

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

var str = "Abc: Lorem ipsum sit amet";
str = str.split(":").pop();

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

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

【讨论】:

  • 很好的答案,我喜欢不同的解决方案
  • 请注意,如果字符串中有多个:,则第二个变体将返回 last 之后的字符串,而不是其他字符串中的第一个。不幸的是,JS 的 split() 方法中没有 split-only-n-times 选项,这将允许您执行 Python 样式的 .split(':', 1)[1]。 (一个可选的number 参数,但它并没有达到任何合理的人所期望的效果。)
  • @bobince - 你说得对,我在这里假设他有一个一致的label: something 格式,如果不是这种情况,我会选择第一个选项。
  • 您可以根据分隔符拆分和连接以删除一些元素。 "Abc:Lorem_ipsum_sit_amet".split(':').slice(1).join('.');
  • 嗨,在 jQuery 中我有这个变量,我想删除字符“|”之后的所有内容。我已经能够使用这个来定位字符串:var str = $('.order-product-list.align-left.box-content.any-1-1 > ul > li:nth-child(1) > div > dl.align-left > dd:nth-child(8)'); 我该怎么做?该字符之后的内容是动态的,取决于网页上的用户。我想隐藏/删除 | 之后的最后一部分
【解决方案2】:

作为Nick's answer 的后续措施,如果您的字符串包含多次出现的:,并且您希望只删除第一次出现之前的子字符串,那么方法如下:

var str = "Abc:Lorem:ipsum:sit:amet";
arr = str.split(":");
arr.shift();
str = arr.join(":");
// str = "Lorem:ipsum:sit:amet"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多