文字列の最初と最後の文字を削除する方法


161

Javascriptで文字列の最初と最後の文字を削除する方法を知りたいです。

私のURLが表示され/installers/、私はちょうど欲しいですinstallers

時々それが/installers/services/必要になるだけですinstallers/services

だから私は単にスラッシュを取り除くことはできません/


私はその最初と最後の文字だけを取り除こうとしています。私は単にURLを取得しています
Peanut '25年

(テキストが示すように)スラッシュをトリミングし、(キャプションが示すように)文字列の最初と最後の文字を無条件に削除することはまったく同じではないことに誰も気づいていないのはなぜですか?しかし、それは以下の幅広い回答を説明しています。
JensG

回答:


359

どうぞ

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

console.log(result);

または.sliceAnkit Guptaの提案に従って使用できます

var yourString = "/installers/services/";

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

console.log(result);

スライスサブストリングのドキュメント。


6
ただし、URLがスラッシュで終わっていない場合、1文字になります
Martijn 2013年

7
@Martijnこれはまさに質問に答えます。スラッシュ以外を取り除きたくないと言った人はいません;)。私からの+1-コードは、ここでの正規表現の例のように、それが何をすべきかを言うべきです。
Episodex 2013年

ただし、別のサーバーに移動する場合は、スラッシュがない場合があります(または、意図的に変更を構成した可能性があります)。反対投票ではなく、指摘するだけです:)
Martijn 2013年

末尾のスラッシュは、index.phpファイルを指しているため、常に存在します...
Peanut


14

私はjQueryがこれと関係があるとは思いません。とにかく、以下を試してください:

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

1
これは、これまでで最も正しいもののようです。唯一のこととして、念のために数量詞を追加します/^\/+|\/+$/g
georg 2013年

8

あなたはそれを正規表現することができます:

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

正規表現の説明:
-オプションの最初のスラッシュ:^/?、エスケープ-> ^\/?^文字列の先頭を意味します)
-パイプ(|)は次のように読み取ることができますor
-末尾のオプションスラッシュより-> /?$、エスケープ-> \/?$$文字列の終わりを意味します) )

組み合わせると、^/?|/$逃げることはありません。オプションの最初のスラッシュまたはオプションの最後のスラッシュ


問題は、「/」を削除できないことです。URLの内部部分を分離するためにそれらが必要になる場合があるためです
Peanut

内側のスラッシュは消えません。正規表現の編集と説明
Martijn 2013年

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.