在最后一个符号“/”或“\”之后获取字符串

时间:2013-05-01 13:55:13

标签: javascript regex

我需要从最后\/之后的字符串获取,来自此字符串C:\fake\path\some.jpg的结果必须为some.jpg

我试过了:

var str = "C:\fake\path\some.jpg";
var newstr = str.replace(/[^\\\/]+$/, "");
alert(newstr);

http://jsfiddle.net/J4GdN/3/

但不起作用,对此正确的正则表达式是什么?

3 个答案:

答案 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);

JSFiddle

答案 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];