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

IT技术 javascript string
2021-03-19 14:08:09

假设我有test_23并且我想删除test_.

我怎么做?

前面的前缀_可以改变。

5个回答

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

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

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

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

我的 C 程序员对在这个简单的拆分/弹出操作中创建和销毁的对象数量感到畏缩:) 可能:一个数组,2 个字符串,另一个数组,另一个字符串。
2021-04-22 14:08:09
@xgbi:是的,JavaScript 和 C 开发人员的理念截然不同;-)
2021-05-13 14:08:09
@FernandoSilva 然后,如果有两个“_”或更多,我们将获得 3 个项目数组,并且也可以使用/删除第三个,对吗?顺便说一句,+1。正是我要找的。
2021-05-13 14:08:09
@TheLightSabrix 看看它是否有效,这比试图用文字解释要容易得多。jsbin.com/keleguzacu/edit?js,控制台
2021-05-16 14:08:09
您可以将使用的可能性添加到您的答案中,alert(str.split("_")[1]);因为.split创建了一个包含两个元素的数组,[0]在之前"_"[1]之后。这实际上是我正在寻找的,但是您的回答帮助我到达了那里^^
2021-05-17 14:08:09

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

var str = 'test_23';
alert(str.substring('test_'.length));
如果不是从 test 开始呢?
2021-04-28 14:08:09
使用 replace 但如果出现多次,则不起作用。str.replace("test_", ""); 将返回一个新字符串,其中所有出现的“test_”都被删除,所以如果只保证出现一次,那么应该没问题。但是,如果有多个,我会使用 str = str.substring(0, str.indexOf("test_)" + str.substring(str.indexOf("test_") + 5, str.length); 我知道这一点是一个旧帖子,但如果有人遇到它,可能会帮助至少一个人在某个地方。
2021-05-03 14:08:09

如果你想删除部分字符串

let str = "try_me";
str.replace("try_", "");
// me

如果你想替换字符串的一部分

let str = "try_me";
str.replace("try_", "test_");
// test_me

我认为最简单的方法是:

var s = yourString.replace(/.*_/g,"_");
神圣的canole这有20个赞成票。真的有人试过这个吗?这当然行不通。这被盲目复制粘贴了多少次?
2021-05-08 14:08:09
string = "test_1234";
alert(string.substring(string.indexOf('_')+1));

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

这比安迪 E 的答案有更少的开销,但更多的代码。两者都有效,但我更喜欢这种方法。
2021-05-02 14:08:09