如何删除字符串的一部分?


Answers:


143

我最喜欢的方法是“拆分并弹出”:

var str = "test_23";
alert(str.split("_").pop());
// -> 23

var str2 = "adifferenttest_153";
alert(str2.split("_").pop());
// -> 153

split()使用指定的分隔符字符串将字符串拆分为字符串数组。
pop()从数组中删除最后一个元素,然后返回该元素。


23
我的C程序员担心通过此简单的split / pop操作创建和销毁的对象的数量:)可能是:一个数组,2个字符串,另一个数组,另一个字符串。
Gui13 2013年

11
@xgbi:是的,但是JavaScript和C开发人员的理念截然不同;-)
Andy E

3
您可以在答案中添加使用的可能性,alert(str.split("_")[1]);因为.split创建的数组包含两个元素,[0]分别位于the"_"[1]after之前。这实际上是我想要的,但是您的回答帮助我到达了那里^^
Fernando Silva

1
@FernandoSilva然后,说如果有两个“ _”或更多,我们将得到3个项目数组,并且也能够使用/删除第三个项目,对吗?顺便说一句,+ 1。正是我想要的。
Light Sabrix

@TheLightSabrix看看它的工作原理,比尝试用文本解释它要容易得多。jsbin.com/keleguzacu/edit?js,console
Fernando Silva

41

假设您的字符串始终以'test_'

var str = 'test_23';
alert(str.substring('test_'.length));

5
如果不是从测试开始怎么办?
NullVoxPopuli

使用替换,但是如果出现多次,则无法使用。str.replace(“ test_”,“”); 将返回一个新字符串,其中删除了所有出现的“ test_”,因此,如果只保证一个出现,则应该没问题。但是,如果有多个,我将使用str = str.substring(0,str.indexOf(“ test_)” + str.substring(str.indexOf(“ test_”)+ 5,str.length);我知道是一个古老的职位,但如果有人遇到,可能会帮助至少一个人在那里
乔治·泽维尔

22

如果要删除字符串的一部分

let str = "test_23";
str.replace("test_", "");
// 23

如果要替换字符串的一部分

let str = "test_23";
str.replace("test_", "student-");
// student-23


9
string = "test_1234";
alert(string.substring(string.indexOf('_')+1));

如果字符串没有下划线,它甚至可以工作。在http://jsbin.com/上尝试


4
与Andy E的答案相比,这具有较少的开销,但具有更多的代码。两者都可以,但是我更喜欢这种方法。
palswim 2010年

1
string = "removeTHISplease";
result = string.replace('THIS','');

我认为replace可以做一些类似自己的功能的事情。对我来说,这有效。


仅对代码的答案几乎总是可以通过添加一些有关其工作方式和原因的解释来加以改进。格式化很重要。
Jason Aller

至少它的工作原理不同于上面的那些,也使用replace。
TroyD

0

我想"www."从href中删除,所以我这样做了:

const str = "https://www.example.com/path";

str.split("www.").join("");

// https://example.com/path
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.