Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.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返回新文件名_Javascript_Regex - Fatal编程技术网

Javascript 使用regex返回新文件名

Javascript 使用regex返回新文件名,javascript,regex,Javascript,Regex,尝试获取文件名并使其返回字符串 尝试转向: 图版-71-winter-hawk-final.jpg 进入: 冬鹰决赛 其中,板也可能是大写的。这是我到目前为止所做的,似乎不起作用 var theRegEx = new RegExp('[Plate|plate]-\d+-(.*).jpg'); var theString = "plate-71-winter-hawk-final.jpg" var newString = theString.replace(theRegEx, theString

尝试获取文件名并使其返回字符串

尝试转向:

图版-71-winter-hawk-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;
不幸的是,“规则1”并没有提供更好的方法:

var newString = theString.replace(/^[Pp]late-\d+-(.*)\.jpg$/, '$1')
                         .replace(/-/g, ' ');
使用带有对象语法的字符串来转义后斜杠时要小心:

var theRegEx = new RegExp('^[Pp]late-\\d+-(.*)\\.jpg$');
请注意,字符类只是一组字符,您不能使用它将子字符串和特殊正则表达式字符放在其中<代码>[Plate | Plate]与
[Pplate |]

您也可以这样写(不带字符串):

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

var newString = theString.replace(/^[Pp]late-\d+-(.*)\.jpg$/, '$1')
                         .replace(/-/g, ' ');
使用带有对象语法的字符串来转义后斜杠时要小心:

var theRegEx = new RegExp('^[Pp]late-\\d+-(.*)\\.jpg$');
请注意,字符类只是一组字符,您不能使用它将子字符串和特殊正则表达式字符放在其中<代码>[Plate | Plate]与
[Pplate |]

您也可以这样写(不带字符串):


试试下面的脚本。它不依赖于字符串的长度,只要它遵循标准模式:

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);
它将打印:


冬季鹰决赛

试试下面的脚本。它不依赖于字符串的长度,只要它遵循标准模式:

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);
它将打印:


winter hawk决赛

为什么需要正则表达式来完成这项工作?你可以结合使用Substring和Replace来做这件事,比你写这篇文章要快得多。哦,我不知道。认为正则表达式可能是最简单的方法吗?正则表达式比简单的字符串操作复杂得多,特别是在处理这种类型的操作时。这里不需要那么复杂。使用正则表达式的规则1:寻找使用正则表达式的替代方法。为什么需要正则表达式来实现这一点?你可以结合使用Substring和Replace来做这件事,比你写这篇文章要快得多。哦,我不知道。认为正则表达式可能是最简单的方法吗?正则表达式比简单的字符串操作复杂得多,特别是在处理这种类型的操作时。这里不需要那么复杂。使用正则表达式的规则1:寻找使用正则表达式的替代方法。这将返回
winter hawk final
。不应该删除
-
吗?是的,它需要用空格替换。是的,替换(/-/g');似乎解决了这个问题,这是他的例子。这成功了,谢谢!这将返回
winter hawk final
。不应该删除
-
吗?是的,它需要用空格替换。是的,替换(/-/g');似乎解决了这个问题,这是他的例子。这成功了,谢谢!