문자열의 일부를 제거하는 방법은 무엇입니까?


답변:


143

제가 가장 좋아하는 방법은 "분할 및 터뜨리기"입니다.

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

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

split () 은 지정된 구분자 문자열을 사용하여 문자열을 문자열 배열로 분할합니다.
pop () 은 배열에서 마지막 요소를 제거하고 해당 요소를 반환합니다.


23
내 안에있는 C 프로그래머는이 간단한 분할 / 팝 작업에서 생성되고 파괴 된 객체의 수에 신경을 씁니다. :) 아마도 : 배열, 2 개 문자열, 다른 배열, 다른 문자열.
Gui13 2013 년

11
@xgbi : 네, JavaScript와 C 개발자는 다소 다른 철학을 가지고 있습니다. ;-)
Andy E

3
앞 과 뒤에 두 개의 요소가있는 배열을 만들기 alert(str.split("_")[1]);때문에 사용할 가능성을 대답에 추가 할 수 있습니다 . 이것은 내가 찾던 사실,하지만 당신의 대답은 ^^ 저를 거기에 도착 도움이.split[0]"_"[1]
페르난도 실바에게

1
@FernandoSilva 그러면 "_"가 두 개 이상이라면 3 개의 항목 배열을 얻고 세 번째 항목도 사용 / 삭제할 수 있습니다. BTW, +1. 내가 찾던 바로 그것.
The Light Sabrix 2015-08-05

@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) 사용합니다. 는 오래된 게시물이지만 누군가가 그것을 발견하면 어딘가에서 적어도 한 사람을 도울 수 있습니다
George Xavier

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

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

교체는 자체 기능과 같은 작업을 수행한다고 생각합니다. 나를 위해 이것은 작동합니다.


코드 전용 답변은 작동 방식과 이유에 대한 설명을 추가하면 거의 항상 개선 될 수 있습니다. 서식이 중요합니다.
Jason Aller

적어도 교체를 사용하는 것과 달리 작동합니다.
TroyD

0

나는 "www."href에서 제거 하고 싶었 으므로 이렇게했습니다.

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

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

// https://example.com/path
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.