我需要从最后\
或/
之后的字符串获取,来自此字符串C:\fake\path\some.jpg
的结果必须为some.jpg
我试过了:
var str = "C:\fake\path\some.jpg";
var newstr = str.replace(/[^\\\/]+$/, "");
alert(newstr);
但不起作用,对此正确的正则表达式是什么?
答案 0 :(得分:11)
你不需要正则表达式,这应该有效:
var newstr = str.substring(Math.max(str.lastIndexOf("\\"), str.lastIndexOf("/")) + 1);
答案 1 :(得分:5)
你的str需要被转义\\
才能正常工作。您还需要使用匹配,因为您使用的reg exp匹配结束,而不是开头。
var str = "C:\\fake\\p\ath\some.jpg";
var newstr = str.match(/[^\\/]+$/);
alert(newstr);
答案 2 :(得分:1)
首先,让我们逃避反斜杠
var str = "C:\\fake\\path\\some.jpg";
var newstr = str.replace(/[^\\\/]+$/, "");
alert(newstr);
现在,您要删除some.jpg
而不是将其作为结果。
以下是一些解决此问题的方法:
1.使用正则表达式替换
var newstr = str.replace(/.*[\\\/]/, "");
2.split with regex(在所有浏览器中都不起作用)
var tmp = str.split(/\\|\//);
var newstr = tmp[tmp.length-1];
4.如此说,匹配
var newstr = str.match(/.*[\\\/](.*)/)[1];