我在使用正则表达式时遇到问题,我有几个文件名需要更改的图像。我亲手完成了。它快速简单,无痛。但是,我想知道我需要做什么作为使用JavaScript的简单替换注册表。那就是它没有完全成功的时候。该图像被称为“muti blossom 02.png”,它将被重新调整大小并保存为名称为“iOS_multi_BLOSSOM_2048.jpg”的JPEG。其他形式相同但名词不同;冬天,叶子,马戏等。
文件名的结构如下:
然后需要更改为:
我知道([az] + \ s)匹配“multi”而且(\ s \ d +。[az] + $)将匹配数字和文件扩展名,但不知道如何成功匹配该位在中间也是。并在名词上做大写。但我确信还有其他人这样做。谢谢。
答案 0 :(得分:1)
在JavaScript正则表达式中,您无法使用replace
执行此操作,因为无法使替换文本大写。但是match
方法将返回一个数组,然后您可以对其进行操作。
var oldImageName = "multi blossom 02.png";
var matches = oldImageName.match(/multi (\w+) \d{1,2}\.(?:png|psd)/);
var newImageName = "iOS_multi_" + matches[1].toUpperCase() + "_2048.jpg";
注意:这假设“名词”是一个没有空格的单词
答案 1 :(得分:-1)
我正在搜索“javascript Regex来替换Windows在文件名中不接受的字符”,但一无所获, 所以这里是正则表达式从Windows文件名不允许的文件名中删除字符(/ \:?<> |“):
var originalFileName='some filename:with"forbidden/>\? chars.in';
var strippedFileName=originalFileName.replace(/[/\\:?<>|\"]+/g, "")
console.log(strippedFileName);