Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript中的Regex替换文件名_Regex - Fatal编程技术网

javascript中的Regex替换文件名

javascript中的Regex替换文件名,regex,Regex,我在使用正则表达式时遇到问题,我有几个文件名为的图像需要更改。我是手工做的。这很快,很容易,也没有痛苦。然而,我想知道作为一个使用JavaScript的简单替换reg ex需要做什么。而那就是它不太起作用的时候。该图像名为“muti blossom 02.png”,它将被重新调整大小并保存为名为“iOS_multi_blossom_2048.jpg”的JPEG格式。其他的是相同的形式,但有不同的名词;冬天、树叶、马戏团等 文件名的结构如下所示: 开始时的“mutli”(小写) 空白处 名词(小

我在使用正则表达式时遇到问题,我有几个文件名为的图像需要更改。我是手工做的。这很快,很容易,也没有痛苦。然而,我想知道作为一个使用JavaScript的简单替换reg ex需要做什么。而那就是它不太起作用的时候。该图像名为“muti blossom 02.png”,它将被重新调整大小并保存为名为“iOS_multi_blossom_2048.jpg”的JPEG格式。其他的是相同的形式,但有不同的名词;冬天、树叶、马戏团等

文件名的结构如下所示:

  • 开始时的“mutli”(小写)
  • 空白处
  • 名词(小写)
  • 空白处
  • 一个数字(前面可能有一个0,可能是一个或两个数字)
  • 文件扩展名可以是.png或.psd(小写)
然后需要将其更改为:

  • iOS_multi(如书面所示为驼峰式)
  • 名词(大写)
  • 2048(新的固定尺寸)
  • 新文件扩展名.jpg(小写)

我知道([AZ++S)匹配“多”,并且(\\D+[[ZZ] +$)将匹配数字和文件扩展名,但不知道如何成功地匹配中间的位。对名词用大写字母。但我肯定还有其他人会这么做。谢谢。

在JavaScript正则表达式中,您不能使用
替换来完成此操作,因为替换文本不能大写。但是,
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";
注意:这假设“名词”是一个没有空格的单词,我正在搜索“javascript正则表达式以替换Windows在文件名中不接受的字符”,但没有找到任何内容, 因此,这里有一个正则表达式,用于从文件名中删除windows filesistem不允许的字符(/\:?|“):

var originalFileName='some filename:带有“禁止的”/>\?chars.in';
var strippedFileName=originalFileName.replace(/[/\\:?\\“]+/g,”)
log(strippedFileName);
是的,“名词”只是一个没有空格的单词。谢谢garyh-这很有用。
var originalFileName='some filename:with"forbidden/>\? chars.in';
var strippedFileName=originalFileName.replace(/[/\\:?<>|\"]+/g, "")
console.log(strippedFileName);