我有一个基本的正则表达式,应该在最后一个反斜杠后返回字符串\.
正则表达式:
/([^\\]*$)/
Run Code Online (Sandbox Code Playgroud)
输出:
random.html
但是在下面的Javascript示例中没有:
console.log("C:\fakepath\extra\random.html".match(/([^\\]*$)/));Run Code Online (Sandbox Code Playgroud)
输出:
["C:akepathextra andom.html","C:akepathextra andom.html",索引:0,输入:"C:akepathextra andom.html"]
问题不在于RegEx,它与字符串本身有关.在JavaScript中,字符串\用于转义以下字符.
字符串
"C:\fakepath\extra\random.html"
Run Code Online (Sandbox Code Playgroud)
在逃跑之后
C:akepathextra
andom.html
Run Code Online (Sandbox Code Playgroud)
要在字符串中使用反斜杠,请使用前面的反斜杠转义它们.
"C:\\fakepath\\extra\\random.html"
Run Code Online (Sandbox Code Playgroud)
console.log("C:\\fakepath\\extra\\random.html".match(/[^\\]*$/));Run Code Online (Sandbox Code Playgroud)
要获得最后的文本\,请使用String#split和Array#pop
"C:\\fakepath\\extra\\random.html".split('\\').pop() // random.html
^^ Note: this backslash also need to be escaped.
Run Code Online (Sandbox Code Playgroud)