2011-04-05 147 views

回答

0

你可以写

var parts = filename.split('.'); 

parts[0]将包含"testfile",并parts[1]将是txt

如果字符串可能有多个. S,你可以写

var filename = "test.file.txt"; 
var parts = /(.+)\.([^.]+)/.exec(filename); 

parts[1]将包含"text.file",并parts[2]txt

0

试试这个:

var fileName = "testfile.txt".replace(/\..*$/, ""); 
alert(fileName); 
+0

这里不需要使用正则表达式。 – ThiefMaster 2011-04-05 15:19:53

+0

@ ThiefMaster:同意。刚刚发布了一种可能的方式... – Chandu 2011-04-05 15:20:51

1
function splitFilename(filename) { 
    var dot = filename.lastIndexOf('.'); 
    if (dot === -1 || dot === 0) { // no extension 
     return [filename, '']; 
    } 
    return [filename.substr(0, dot), filename.substr(dot + 1)]; 
} 

例子:

js> splitFilename('a') 
a, 
js> splitFilename('.htaccess') 
.htaccess, 
js> splitFilename('test.blah.php') 
test.blah,php 
js> splitFilename('test.php') 
test,php 
js> splitFilename('test.') 
test,