var teststr = "c:\file\attachment\201208\test.rar(文件说明)sdsdsdd";var testend = teststr.match(/\w+(?=\.w+\()w+/);//我这样写不对,值为null,我要的值为test.rar或rar文件扩展名之后为(字符,这个是不变的,该字符串有且只有一个文件名,如果用正则找出其扩展名呢?
对正则比较熟的大虾,指点下吧,谢了
对正则比较熟的大虾,指点下吧,谢了
var testend = teststr.match(/([^\\]+)(\.[^\(]+)/i);
alert(testend.join('\n'))
var testend = teststr.match(/([^\\]+)(\.[^\(]+)/i);
这个求出的值为:test.rar(文件说明),test.rar(文件说明)
我要的是test.rar或rar
为了减小复杂性,sdsdsdd这些字符去掉吧,即:
var teststr = "c:\\file\\attachment\\201208\\test.rar(文件说明)
alert(teststr.split('\\')[teststr.split('\\').length-1].split('(')[0])
我这里测试对的啊。。输出
test.rar
test
.rar你是copy我的代码测试的没有。
var teststr = "c:\\file\\attachment\\201208\\test.rar(文件说明100.5K)sdsdsdd";
var testend1 = teststr.match(...);//这个要取到值test.rar
var testend2 = teststr.match(...);//这个要取到值rar就要一步到位啊,如果分步的话,我还不如不用正则了,直接用indexof等之类的来取了
var filename=teststr.split('\\')[teststr.split('\\').length-1].split('(')[0]
//获取到文件扩展名 rar
var extension=filename.split('.')[1]
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];不需要正则,直接拆分截取字符串貌似就可以了
var testend = teststr.match(/([^\\]+)(\.[^\(]+)/i);//数组
alert(testend.join('\n'))
testend = teststr.match(/[^\\]+\.[^\(]+/i);//直接完整文件名的
alert(testend)