0

我即将成为 3 级 Regex Sorcerer(在那里我可以找到隐藏的陷阱并拥有一只宠物猫头鹰或蝙蝠),但我仍然需要一些帮助才能到达那里......

以下适用于前两种情况,但不适用于第三种情况。我试着让数字变得贪婪,但整个事情都失败了,我不知道我哪里出错了。你能帮忙吗?

alert(removeNumberAndExtension("file 01.txt")) // works
alert(removeNumberAndExtension("file_01.txt")) // works
alert(removeNumberAndExtension("file.txt"))    // fails

function removeNumberAndExtension(fname)
{
  var rexp = new RegExp(/\s*\d+\.[a-zA-Z]+/g)
  return fname.replace(rexp, "")
}
4

1 回答 1

3

这是因为\d+一位或多位数字”

您需要\d*个或多个数字”

文件扩展名也可以有数字(例如“.mp3”),所以使用[a-zA-Z0-9].

您应该添加“字符串结尾”锚 ( $),这会使全局标志( g) 无用。

所有这些一起: /\s*\d*\.[a-zA-Z0-9]+$/:)

于 2013-07-17T09:48:49.103 回答