문자열의 첫 문자와 마지막 문자를 제거하는 방법


161

Javascript에서 문자열의 첫 번째 문자와 마지막 문자를 제거하는 방법이 궁금합니다.

내 URL이 표시 /installers/되고 installers있습니다.

때로는 될 것입니다 /installers/services/그리고 난 그냥 필요합니다 installers/services.

따라서 단순히 슬래시를 제거 할 수는 없습니다 /.


나는 그 첫 번째와 마지막 문자를 제거하려고합니다. 난 그냥 URL을 잡고있어
땅콩

텍스트가 나타내는대로 슬래시를 자르고 (캡션이 나타내는대로) 문자열의 첫 번째와 마지막 문자를 무조건적으로 제거하는 것이 완전히 동일하지 않다는 것을 아무도 알지 못하는 이유가 궁금합니다. 그러나 아래는 다양한 답변을 설명합니다.
JensG

답변:


360

여기 요

var yourString = "/installers/";
var result = yourString.substring(1, yourString.length-1);

console.log(result);

또는 Ankit Gupta가.slice 제안한대로 사용할 수 있습니다.

var yourString = "/installers/services/";

var result = yourString.slice(1,-1);

console.log(result);

slicesubstring에 대한 설명서입니다 .


6
그러나 URL의 슬래시로 끝나지 않습니다, 그것은 1 문자를 취할 것입니다
Martijn

7
@Martijn 이것은 정확하게 질문에 대답합니다. 아무도 당신이 슬래시 이외의 것을 제거하고 싶지 않다고 말했다. +1-코드는 정규식 예제와는 달리해야 할 일을 말해야합니다.
Episodex

그러나 다른 서버로 이동할 위치가 있으면 슬래시가 없을 수 있습니다 (또는 변경 사항을 의도적으로 구성했을 수도 있음). downvoting하지, 그냥 지적 :)
Martijn

후행 슬래시는 index.php 파일을 가리 키기 때문에 항상 거기에있을 것입니다.
Peanut

131

다음과 같이 slice를 사용하는 것이 더 좋습니다.

string.slice(1, -1)

14

jQuery와 관련이 없다고 생각합니다. 어쨌든 다음을 시도하십시오.

url = url.replace(/^\/|\/$/g, '');

1
이것은 지금까지 가장 올바른 것 같습니다. 유일한 경우에 대비하여 수량자를 추가합니다 /^\/+|\/+$/g.
georg

8

당신은 그것을 정규식으로 만들 수 있습니다 :

"string".replace(/^\/?|\/?$/, "")
"/installers/services/".replace(/^\/?|\/?$/, "") // -> installers/services

정규식은 다음과 같이 설명했다
.-선택적인 첫 번째 슬래시 : ^/?, 이스케이프 된-> ^\/?( ^문자열의 시작을 의미)
-파이프 (|)는 or
끝에서 옵션 슬래시보다- /?$이스케이프 처리 된-> \/?$( $문자열의 끝을 의미 함) )

^/?|/$이스케이프되지 않고 결합 . 선택적 첫 번째 슬래시 또는 선택적 마지막 슬래시


문제는 때때로 "/"를 제거 할 수 없다는 것입니다. 때로는 URL의 내부 부분을 분리하기 위해 이들을 필요로하기 때문입니다.
Peanut

내부 슬래시는 사라지지 않습니다. 정규식 편집 및 설명
Martijn

3
"/installers/services/".replace(/^\/?|\/?$/g," ")
Matt Gaunt

3

substring방법 을 사용할 수 있습니다

s = s.substring(0, s.length - 1) //removes last character

다른 대안은 slice방법입니다


3

당신은 그런 것을 할 수 있습니다 :

"/installers/services/".replace(/^\/+/g,'').replace(/\/+$/g,'')

이 정규식은 trim많은 언어에서 사용되는 기능 과 동일한 동작을하는 일반적인 방법 입니다.

트림 기능의 가능한 구현은 다음과 같습니다.

function trim(string, char){
    if(!char) char = ' '; //space by default
    char = char.replace(/([()[{*+.$^\\|?])/g, '\\$1'); //escape char parameter if needed for regex syntax.
    var regex_1 = new RegExp("^" + char + "+", "g");
    var regex_2 = new RegExp(char + "+$", "g");
    return string.replace(regex_1, '').replace(regex_2, '');
}

어느 것이 모두 삭제됩니다 /문자열의 시작과 끝에서 . 그것은 같은 경우를 처리///installers/services///

간단하게 할 수도 있습니다 :

"/installers/".substring(1, string.length-1);


1

문자열의 첫 번째 문자제거 해야하는 경우

string.slice(1, 0)

그리고 마지막 편지제거 하기 위해

string.slice(0, -1)

-3
url=url.substring(1,url.Length-1);

이런 식으로 ... / ... / ... / ... 등과 같은 디렉토리를 사용할 수 있습니다.


1
url.length아님url.Length
아서
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.