我即将成为 3 级正则巫师(在那里我可以找到隐藏的陷阱并拥有宠物猫头鹰或 bat ),但我仍然需要一些帮助才能到达那里......
以下方法适用于前两种情况,但不适用于第三种情况。我尝试让数字变得贪婪,但整个事情都失败了,我不知道我哪里出了问题。 你能帮忙吗?
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, "")
}
最佳答案
这是因为 \d+
:“一个或多个数字”。
您需要\d*
:“零或更多数字”。
文件扩展名也可以包含数字(例如“.mp3”),因此请使用[a-zA-Z0-9]
。
您应该添加“字符串结尾” anchor ($
),这使得全局标志 (g
)没用。
所有这些加在一起:/\s*\d*\.[a-zA-Z0-9]+$/
:)
关于javascript - 正则表达式删除扩展名和号码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17696464/