日期:2014-05-16  浏览次数:20381 次

js中,这段路径字符串,如何用正则找出文件名或推展名?
var teststr = "c:\file\attachment\201208\test.rar(文件说明)sdsdsdd";

var testend = teststr.match(/\w+(?=\.w+\()w+/);//我这样写不对,值为null,我要的值为test.rar或rar

文件扩展名之后为(字符,这个是不变的,该字符串有且只有一个文件名,如果用正则找出其扩展名呢?
对正则比较熟的大虾,指点下吧,谢了

------解决方案--------------------
JScript code
    var teststr = "c:\\file\\attachment\\201208\\test.rar(文件说明)sdsdsdd";//你这里的路径写错了
    var testend = teststr.match(/([^\\]+)(\.[^\(]+)/i); 
    alert(testend.join('\n'))

------解决方案--------------------
sdsdsdd这一段时随机的吧,这就难找了
------解决方案--------------------
var teststr = "c:\file\attachment\201208\test.rar(文件说明)";

(文件说明) 这是什么?就是这么几个字,还是固定的有括号括起来的一段说明?
------解决方案--------------------
后面跟的(文件说明)中,这个“(”是真实存在的是吧??

如果是的话,非批量的话:
JScript code
alert(teststr.split('\\')[teststr.split('\\').length-1].split('(')[0])

------解决方案--------------------
探讨

引用:

JScript code
var teststr = "c:\\file\\attachment\\201208\\test.rar(文件说明)sdsdsdd";//你这里的路径写错了
var testend = teststr.match(/([^\\]+)(\.[^\(]+)/i);
alert(testend.join('\n'))

好像也不对啊……

------解决方案--------------------
//获取到test.rar
var filename=teststr.split('\\')[teststr.split('\\').length-1].split('(')[0]
//获取到文件扩展名 rar
var extension=filename.split('.')[1]
------解决方案--------------------
var testArr=teststr.split(.);
var typeNameStr=testArr[testArr.length-1];
var typeName=typeNameStr.substring(0,typeNameStr.length-13);


var testArr=teststr.split(.);
var typeNameStr=testArr[testArr.length-1];
var typeName=typeNameStr.split('(')[0];

不需要正则,直接拆分截取字符串貌似就可以了