如何删除字符串的第一个和最后一个字符


161

我想知道如何在Javascript中删除字符串的第一个和最后一个字符。

我的网址显示出来了/installers/,我只想要installers

有时候会的/installers/services/,我只需要installers/services

所以我不能只是简单地去除斜线/


我正在尝试仅删除该字符的第一个和最后一个字符。我只是获取URL
Peanut

我只是想知道为什么没人似乎注意到修剪斜杠(如文本所示)和无条件删除字符串的第一个和最后一个字符(如标题所示)并不完全一样。但这解释了下面的答案。
JensG

Answers:


359

干得好

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

console.log(result);

或者您可以.slice按照Ankit Gupta的建议使用

var yourString = "/installers/services/";

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

console.log(result);

slicesubstring的文档。


6
但是网址的结尾不是斜线,而是1个字符
Martijn 2013年

7
@Martijn这正好回答了这个问题。没有人说您除了斜杠以外不想要剥离任何其他东西;)。向我+1-代码应该说出它应该做什么,不像这里的regex示例。
Episodex 2013年

但是,如果您要移至另一台服务器,则可能没有对应的斜杠(或者您有意配置了更改)。不能拒绝投票,只是指出:)
马丁

尾部的斜线将一直存在,因为它指向index.php文件...
Peanut 2013年


14

我认为jQuery与这无关。无论如何,请尝试以下操作:

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

1
这看起来是迄今为止最正确的一种。唯一的是,我要添加一个量词,以防万一:/^\/+|\/+$/g
乔治,

8

您可以对其进行正则表达式:

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

正则表达式说明:
-可选的第一个斜杠:^/?,转义-> ^\/?^字符串的均值开头)
-管道(|)可以读为or
-比末尾的选项斜杠-> /?$,转义-> \/?$$字符串的均值结尾)

结合起来,就无法^/?|/$逃脱。可选的第一个斜杠或可选的最后一个斜杠


问题是我不能去除“ /”,因为有时我需要用它们来分隔网址的内部部分
Peanut 2013年

内斜线不会消失。生病编辑和解释的正则表达式
马亭

3
我认为你需要全局标志,使这项工作:“/installers/services/".replace(/^\/?|\/?$/g,‘’)
马特·冈特

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
亚瑟
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.