JavaScript Regex替换文件扩展名之前的最后一个下划线和数字
JavaScript Regex Replace Last Underscore and Digits Before File Extension
如何去掉文件名中最后一个下划线及其后面的数字。
这里有一个例子:
案例#1
fileName_01.jpg --> fileName.jpg
案例#1
file_Name_01.jpg --> file_Name.jpg
案例#3
file_Name_.jpg --> file_Name_.jpg
jsfiddle测试文件:http://jsfiddle.net/2t3rR/4/
<script language="javascript" type="text/javascript">
function RegexTester() {
debugger;
var string = 'fileName_01.jpg';
var regex = new RegExp('_[0-9]+'.');
string = string.replace(regex, '.'); //Result - fileName.jpg
string = 'file_Name_01.jpg';
string = string.replace(regex, '.'); //Result - file_Name.jpg
string = 'file_Name_.jpg';
string = string.replace(regex, '.'); //Result - file_Name_.jpg
}
</script>
我认为最好使用前瞻,不要匹配点:
"file_name_01.jpg".replace(/_'d+(?='.)/, '')
情况如何?
"fileName_01.jpg".replace(/_'d+('.[^.]+)$/,"$1")
使用模式/_[0-9]+'./
并替换为.
strArr[i].replace(/_[0-9]+'./, ".")
后面的.
是一个很弱的尝试,以确保我们只替换扩展名之前的数字,这样我们就不会将"file_01_name.jpg"变成"file_name.jpg"。
这将在诸如"file_01.asdf.jpg"之类的事情上失败,在那里它将转换为"file.asdf..jpg",但希望这种文件名不会出现在您的应用程序中。(否则,我们将不得不在文件扩展名中生成regex和硬代码)。
相关文章:
- 如何从另一个带下划线的数组中筛选带元素的数组
- 使用下划线将键和值的两个数组合并到一个对象中
- 将一个对象转换为一个单键对象数组(带下划线?)
- Javascript Regexp :如果一个字母与一个数字相邻,请添加下划线
- 使用下划线一个接一个地替换每个项目(li)
- 将同一个元素追加到两个下拉列表中只会导致最后一个元素被追加
- 使jQuery图像滑块停止在最后一个图像,并添加下一个和上一个按钮
- Ajax下拉/最后一个选项更改Iframe
- 我在angular JS中选择了一个默认选项,并删除了两个单词之间的下划线
- 通过鼠标向下选择父级中的最后一个子项
- 构建一个简单的随机化器,其中包括一个点、一个下划线、字母 A 和字母 B
- 下划线.js,从一个对象中获取两个项目并添加到顶部
- 默认情况下,在 angularjs 中选择下拉列表中的最后一个位置显示占位符
- 到达最后一个元素时隐藏下一步按钮
- 我的 h1 标签链接在悬停时会显示一个下划线,我没有添加
- jQuery:隐藏按钮,直到选择最后一个下拉列表
- JavaScript Regex替换文件扩展名之前的最后一个下划线和数字
- _.each()函数在ie8中抛出了一个下划线模板错误
- 只需要获取ID的一部分最后一个下划线之后的所有内容
- 检测元素的innerHTML的最后一个字符是否为"1",如果是,下划线并将最后一个字符设置为绿色,并