我想知道如何删除Javascript字符串的第一个和最后一个字符。
我的url显示/installers/,我只想要安装程序。
有时它会是/installers/services/,我只需要installers/services。
所以不能简单地去掉斜杠/。
我想知道如何删除Javascript字符串的第一个和最后一个字符。
我的url显示/installers/,我只想要安装程序。
有时它会是/installers/services/,我只需要installers/services。
所以不能简单地去掉斜杠/。
如果你不总是有一个开始或结束斜杠,你可以正则化它。虽然正则表达式比简单的替换/切片更慢,但它有更多的逻辑空间:
"/installers/services/".replace(/^\/?|\/?$/g, "")
# /installers/services/ -> installers/services
# /installers/services -> installers/services
# installers/services/ -> installers/services
正则表达式解释说:
['以' ^]开头+[可选?+[斜杠]:^/?,已转义-> ^\/? 管道(|)可以读取为或 ['以' $]+[可选?]+[斜杠]-> /?$, escaped -> \/?$
合起来就是^/?|/$没有逃脱。可选的第一个斜杠或可选的最后一个斜杠。 从技术上讲,这不是“可选的”,而是“零倍或一倍”。
给你
var yourString = “/installers/”; var result = yourString.substring(1, yourString.length-1); 控制台.log(结果);
或者你也可以按照Ankit Gupta的建议使用.slice
var yourString = “/installers/services/”; var result = yourString.slice(1,-1); 控制台.log(结果);
片和子字符串的文档。
你可以这样做:
"/installers/services/".replace(/^\/+/g,'').replace(/\/+$/g,'')
这个正则表达式是在许多语言中使用的具有与trim函数相同行为的常用方法。
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);
使用.replace (/ . * \ / \ / / img (\ S +),“$ 1”)
"/installers/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services
"/services/".replace(/.*\/(\S+)\//img,"$1"); //--> services