反斜杠-正则表达式-Javascript
我想构建一个JS函数,其中包含一个有效路径的参数列表(因为我无法确定路径的一部分是否带有斜杠) 这就是功能:反斜杠-正则表达式-Javascript,javascript,regex,Javascript,Regex,我想构建一个JS函数,其中包含一个有效路径的参数列表(因为我无法确定路径的一部分是否带有斜杠) 这就是功能: concatPath = function() { var path = ""; for(var i = 0; i < arguments.length; i++) { path += arguments[i].replace("(\\|/)$|^(\\|/)", "") + "/"; } return path; } 但是,使
concatPath = function() {
var path = "";
for(var i = 0; i < arguments.length; i++) {
path += arguments[i].replace("(\\|/)$|^(\\|/)", "") + "/";
}
return path;
}
但是,使用正则表达式
(\\)$|^(\\)
很好
是太晚了还是我错过了什么特别的东西
提前谢谢
狮子座试试这个。。。使用[角色类]更容易一些。要将单个
\
与javascript字符串相匹配,您需要\\\\
,这可能就是正在发生的事情
newregexp('^[\\\\/]\[\\\\/]$)
您也可以尝试使用/^[\\\/]\[\\\/]$/g
符号
s = 'c:\\folder\\'
console.log(s.replace(/^[\\\/]|[\\\/]$/g, ''))
在调用
replace
时,应该使用正则表达式文本(/…/
)而不是字符串文本('.'.'
或“…
)。字符串对反斜杠有自己的解释,在正则表达式构造函数出现裂缝之前,反斜杠就会出现,因此需要额外的引号
匹配一个反斜杠,正则表达式文字:/\\/
在字符串中匹配一个反斜杠正则表达式:'\\\'
但在正则表达式文字中,还必须在正斜杠前面加反斜杠,因为正斜杠是整个过程的分隔符:
path += arguments[i].replace(/(\\|\/)$|^(\\|\/)/, "") + "/";
或者,如果出于某种原因,您已经习惯于使用字符串,这也应该起作用:
path += arguments[i].replace("(\\\\|/)$|^(\\\\|/)", "") + "/";
作为补充说明,当您的备选方案是单个字符时,(x | y)
太过熟练了;您可以只使用字符类:[xy]
。在这种情况下,您会得到以下结果:
path += arguments[i].replace(/[\\\/]$|^[\\\/]/, "") + "/";
path += arguments[i].replace("[\\\\/]$|^[\\\\/]", "") + "/";
非常感谢,你能告诉我为什么我要用“\\\\”吗?我想“\\”就足够了,因为我需要一个反斜杠来防止它从“还要注意StackOverflow注释中是否需要反斜杠…:)当您使用字符串形式时,您将经历两个解析器—Javascript解析器,它从源代码构建字符串,以及Regexp解析器,它从字符串构建正则表达式。regexp必须有两个反斜杠,但为了从文本中获得字符串中的单个反斜杠,必须将其加倍。加起来,这意味着四个反斜杠。试试这个:
alert(“-->\\\ \ \ \ \ \”不客气!你应该接受一个答案(我的或代理-j的),这样人们将来更有可能回答你的问题。使用字符串可以让你输入变量。\用例
path += arguments[i].replace(/[\\\/]$|^[\\\/]/, "") + "/";
path += arguments[i].replace("[\\\\/]$|^[\\\\/]", "") + "/";