正则表达式删除扩展名和数字

时间:2013-07-17 09:46:29

标签: javascript regex

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

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

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, "")
}

1 个答案:

答案 0 :(得分:3)

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

您需要\d*或更多位数”

文件扩展名也可以包含数字(例如“。mp3”),因此请使用[a-zA-Z0-9]

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

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