首页 > 解决方案 > 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} 但它不起作用,有人可以帮我吗?

标签: javascriptregexp-replace

解决方案


您在正则表达式中使用反斜杠。但它们充当转义字符。如果你想匹配实际的反斜杠,你也需要转义它们。在您的情况下,您需要分隔两个反斜杠,从而连续四个。

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) 


推荐阅读