公告
财富商城
积分规则
提问
发文
2019-08-23 16:48发布
爷、活的狠高调
How can I catch everything after the last underscore in a filename?
ex: 24235235adasd_4.jpg into 4.jpg
24235235adasd_4.jpg
4.jpg
Thanks again!
var end = filename.replace(/.*_/,'');
var foo = '24235235adasd_4.jpg'; var bar = foo.substr(foo.lastIndexOf('_') + 1);
*Make a note to yourself that this wont work with those uncommon files that have an '_' in their extension (for example, I've seen some that are named filename.tx_)
filename.tx_
var end = "24235235adasd_4.jpg".match(/.*_(.*)/)[1];
Edit: Whoops, the ungreedy modifier was wrong.
Edit 2: After running a benchmark, this is the slowest method. Don't use it ;) Here is the benchmark and the results.
Benchmark:
var MAX = 100000, i = 0, s = new Date(), e = new Date(), str = "24235235ad_as___4.jpg", methods = { "Matching": function() { return str.match(/.*_(.*)/)[1]; }, "Substr": function() { return str.substr(str.lastIndexOf('_') + 1); }, "Split/pop": function() { return str.split('_').pop(); }, "Replace": function() { return str.replace(/.*_/,''); } }; console.info("Each method over %d iterations", MAX); for ( var m in methods ) { if ( !methods.hasOwnProperty(m) ) { continue; } i = 0; s = new Date(); do { methods[m](); } while ( ++i<MAX ); e = new Date(); console.info(m); console.log("Result: '%s'", methods[m]()); console.log("Total: %dms; average: %dms", +e - +s, (+e - +s) / MAX); }
Results:
Each method over 100000 iterations Matching Result: '4.jpg' Total: 1079ms; average: 0.01079ms Substr Result: '4.jpg' Total: 371ms; average: 0.00371ms Split/pop Result: '4.jpg' Total: 640ms; average: 0.0064ms Replace Result: '4.jpg' Total: 596ms; average: 0.00596ms
Gordon Tucker's Substr/lastIndexOf is the fastest by a long shot.
"24235235adasd_4.jpg".split('_').pop();
最多设置5个标签!
*Make a note to yourself that this wont work with those uncommon files that have an '_' in their extension (for example, I've seen some that are named
filename.tx_
)Edit: Whoops, the ungreedy modifier was wrong.
Edit 2: After running a benchmark, this is the slowest method. Don't use it ;) Here is the benchmark and the results.
Benchmark:
Results:
Gordon Tucker's Substr/lastIndexOf is the fastest by a long shot.