使用正则表达式返回新的文件名

时间:2016-04-01 00:31:07

标签: javascript regex

尝试获取文件名并让它返回一个字符串。

试着转身:

板-71-冬季鹰final.jpg

成:

冬天鹰决赛

其中盘子也可能是大写的。这是我到目前为止,似乎没有工作

var theRegEx = new RegExp('[Plate|plate]-\d+-(.*).jpg');
var theString = "plate-71-winter-hawk-final.jpg"

var newString = theString.replace(theRegEx, theString);

newString;

2 个答案:

答案 0 :(得分:2)

不幸的是,"规则#1" 并没有提供更好的方法:

var newString = theString.replace(/^[Pp]late-\d+-(.*)\.jpg$/, '$1')
                         .replace(/-/g, ' ');

当您使用带有对象语法的字符串来转义后退时要小心:

var theRegEx = new RegExp('^[Pp]late-\\d+-(.*)\\.jpg$');

请注意,字符类只是一组字符,您不能使用它来将子字符串和特殊的正则表达式字符放在其中。 [Plate|plate][Pplate|]

相同

你也可以这样写(没有字符串):

var theRegEx = new RegExp(/^[Pp]late-\d+-(.*)\.jpg$/);

答案 1 :(得分:0)

尝试以下脚本。只要符合标准模式,它就不依赖于字符串的长度:

var data = "plate-71-winter-hawk-final.jpg";
var rx = /(?:plate\-\d+\-)(.*)(?=\.)/i;

var match = rx.exec(data);
if(match != null){
   data = match[1];
   data = data.replace(/\-/g, ' ');
}

console.log(data);

它将打印:

冬天鹰决赛