Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.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 正则表达式删除扩展名和数字_Javascript_Regex - Fatal编程技术网

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

Javascript 正则表达式删除扩展名和数字,javascript,regex,Javascript,Regex,我即将成为一名3级正则巫师(在那里我可以找到隐藏的陷阱并拥有一只宠物猫头鹰或蝙蝠),但我仍然需要一些帮助才能到达那里 以下方法适用于前两种情况,但不适用于第三种情况。我试着让数字变得贪婪,但整个事情都失败了,我不知道我哪里出了问题。 你能帮忙吗 alert(removeNumberAndExtension("file 01.txt")) // works alert(removeNumberAndExtension("file_01.txt")) // works alert(removeNum

我即将成为一名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, "")
}

这是因为
\d+
:“一个或多个数字”

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

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

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


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

这是因为
\d+
:“一个或多个数字”

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

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

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


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

谢谢你给我解释。@Ghouldool:把你的表达贴到www.regex101.com上,让他们解释一下,你不太可能错过这样的东西。我不知道regex101.com;我要肉店的!谢谢你给我解释。@Ghouldool:把你的表达放到www.regex101.com上,让他们解释一下,你就不太可能错过这样的东西了。我不知道regex101.com;我要肉店的!