0

我不知道这里发生了什么..

model.attributes.data.Path.replace('/\\/g',""), @options.path.replace('/\\/g',"")

做的时候:

console.log model.attributes.data.Path.replace('/\\/g',""), 
@options.path.replace('/\\/g',"")

数据是:

T2/T2_2、T2/T2_2

它返回这个:

T2T2_2、T2/T2_2

所以只有第一条路径被替换,而不是第二条路径?为什么会这样?

4

3 回答 3

2

除了匹配反斜杠 ( \\= \) 而不是正斜杠 ( \/= /) 之外,不要将正则表达式作为字符串放入替换函数中。

利用:

.replace(/\//g,"");

代替

.replace('/\//g',"");

然后它会工作得很好:

"T2/T2_2 , T2/T2_2".replace(/\//g,"");
// returns: "T2T2_2 , T2T2_2"

否则,它只会尝试从字面上找到string '/\//g'

此外,要替换 1 个正则表达式中的正斜杠和反斜杠,请尝试以下操作:

"T2/T2_2 , T2\T2_2".replace(/\/|\\/g,"");
// returns: "T2T2_2 , T2T2_2"

# \/|\\ Matches:
# \/  - Forward slash
# |   - Or
# \\  - Backslash
于 2013-01-23T14:10:04.420 回答
1

尝试:

model.attributes.data.Path.replace(/\//g,"")
@options.path.replace(/\//g,"")

/\\/g匹配反斜杠并/\//g匹配正斜杠。

于 2013-01-23T14:08:37.913 回答
1

尝试.replace(/\//g,"")代替.replace('/\\/g',""), (正则表达式不是字符串)。

于 2013-01-23T14:09:20.783 回答