正则表达式 javascript

reg Exp javascript

我对动态正则表达式有疑问。这是示例

var searchStr = "C:\Users\fds\Desktop\Node"
num = 2
var p ='([a-zA-Z]*:{1}(\[a-zA-Z]*){'+num+'})'
var p1 = new RegExp(p,"gi")
console.log(p1)
let wabpath = searchStr.replace(p1,"")
console.log(wabpath) 

我正在尝试动态传递 {num} 但它不起作用,有人可以帮我解决这个问题吗?

您在正则表达式中使用了反斜杠。但他们充当逃避角色。如果你想匹配实际的反斜杠,你也需要转义它们。在您的情况下,您需要将两个反斜杠分开,导致连续四个反斜杠。

var searchStr = "C:\Users\fds\Desktop\Node"
num = 2
var p ='([a-zA-Z]*:{1}(\\[a-zA-Z]*){'+num+'})'
var p1 = new RegExp(p,"gi")
console.log(p1)
let wabpath = searchStr.replace(p1,"")
console.log(wabpath)