我需要从字符串中获取,最后一个 \
或/
,即从这个字符串 C:\fake\path\some.jpg
结果必须是some.jpg
我试过这个:
var str = "C:\fake\path\some.jpg";
var newstr = str.replace(/[^\\\/]+$/, "");
alert(newstr);
但不起作用,什么是正确的正则表达式?
我需要从字符串中获取,最后一个 \
或/
,即从这个字符串 C:\fake\path\some.jpg
结果必须是some.jpg
我试过这个:
var str = "C:\fake\path\some.jpg";
var newstr = str.replace(/[^\\\/]+$/, "");
alert(newstr);
但不起作用,什么是正确的正则表达式?
您不需要正则表达式来执行此操作,这应该可以:
var newstr = str.substring(Math.max(str.lastIndexOf("\\"), str.lastIndexOf("/")) + 1);
那么你的 str 需要被转义\\
才能正常工作。您还需要使用 match,因为您使用的 reg exp 匹配的是结尾,而不是开头。
var str = "C:\\fake\\p\ath\some.jpg";
var newstr = str.match(/[^\\/]+$/);
alert(newstr);
首先,让我们避开反斜杠
var str = "C:\\fake\\path\\some.jpg";
var newstr = str.replace(/[^\\\/]+$/, "");
alert(newstr);
现在,您正在删除some.jpg
而不是得到它。
这里有几个选项可以解决这个问题:
1.用正则表达式替换
var newstr = str.replace(/.*[\\\/]/, "");
2.使用正则表达式拆分(不适用于所有浏览器)
var tmp = str.split(/\\|\//);
var newstr = tmp[tmp.length-1];
4.如这里所说,匹配
var newstr = str.match(/.*[\\\/](.*)/)[1];