我想知道如何在Javascript中删除字符串的第一个和最后一个字符。
我的网址正在显示/installers/
,我只想installers
。
有时它会/installers/services/
,我只需要installers/services
。
所以我不能简单地删除斜杠/
。
答案 0 :(得分:286)
你去吧
var yourString = "/installers/";
var result = yourString.substring(1, yourString.length-1);
console.log(result);
或者您可以按照Anka Gupta的建议使用.slice
var yourString = "/installers/services/";
var result = yourString.slice(1,-1);
console.log(result);
答案 1 :(得分:108)
使用像:
这样的切片可能更好string.slice(1, -1)
答案 2 :(得分:11)
我不认为jQuery与此有任何关系。无论如何,请尝试以下方法:
url = url.replace(/^\/|\/$/g, '');
答案 3 :(得分:6)
你可以正则表达它:
"string".replace(/^\/?|\/?$/, "")
"/installers/services/".replace(/^\/?|\/?$/, "") // -> installers/services
正则表达式解释说:
- 可选的第一个斜杠:^/?
,转义 - > ^\/?
(^
表示字符串的开头)
- 管道(|)可以读作or
- 比最后的选项斜杠 - > /?$
,转义 - > \/?$
($
表示字符串的结尾)
组合它将^/?|/$
没有逃脱。可选的第一个斜杠或可选的最后斜杠
答案 4 :(得分:2)
你可以这样做:
"/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);
答案 5 :(得分:1)
您可以使用substring
方法
s = s.substring(0, s.length - 1) //removes last character
另一种选择是slice
方法
答案 6 :(得分:0)
使用.replace(/.*\/(\S+)\//img,"$1")
"/installers/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services
"/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services
答案 7 :(得分:0)
如果您需要删除字符串的第一个字母
string.slice(1, 0)
并删除最后一个字母
string.slice(0, -1)
答案 8 :(得分:-1)
以下正则表达式将删除第一个和最后一个斜杠(如果存在),
var result = "/installers/services/".match(/[^/].*[^/]/g)[0];
答案 9 :(得分:-3)
url=url.substring(1,url.Length-1);
这样你可以使用目录,如果它是...... / ... / ... / ...等等。