您应在调用时使用正则表达式文字(
/.../)而不是字符串文字(
'...'或
"...")
replace。字符串对反斜杠有自己的解释,反斜杠会在正则表达式构造函数对其进行破解之前插入,因此您需要额外的引用级别。
匹配一个反斜杠,正则表达式文字:
/\/
在字符串中匹配一个反斜杠,正则表达式:
'\\'
但是,在正则表达式文字中,您还必须在反斜杠前面加上反斜杠,因为正斜杠是整件事的定界符:
path += arguments[i].replace(/(\|/)$|^(\|/)/, "") + "/";
或者,如果由于某种原因而对字符串的使用感到满意,这也应该起作用:
path += arguments[i].replace("(\\|/)$|^(\\|/)", "") + "/";顺便提一句,当您的替代字符是单个字符时,
(x|y)会显得过分杀伤;您可以只使用字符类:
[xy]。在这种情况下,您得到以下信息:
path += arguments[i].replace(/[\/]$|^[\/]/, "") + "/";path += arguments[i].replace("[\\/]$|^[\\/]", "") + "/";


