Javascript 使用regex返回新文件名
尝试获取文件名并使其返回字符串 尝试转向: 图版-71-winter-hawk-final.jpg 进入: 冬鹰决赛 其中,板也可能是大写的。这是我到目前为止所做的,似乎不起作用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
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');似乎解决了这个问题,这是他的例子。这成功了,谢谢!