以下正则表达式:
如何修改这个正则表达式,以便仅在字符串真正是一个只有一个点作为分隔符的文件名时返回扩展名?(显然,filename#gif不是一个常规的文件名)
更新:根据tvanofsson的评论,我想澄清一下,当JS函数接收到字符串时,该字符串将已经包含没有空格、没有点和其他特殊字符的文件名(实际上它将被处理为一个“slug”)。问题不在于解析文件名,而是在于错误地解析“slug”——当给定“filename-jpg”时,该函数返回了“jpg”的扩展名,而实际上应该返回null或空字符串,并且需要纠正这种行为。
var patt1=/[0-9a-z]+$/i;
从字符串中提取文件扩展名,例如
filename-jpg
filename#gif
filename.png
如何修改这个正则表达式,以便仅在字符串真正是一个只有一个点作为分隔符的文件名时返回扩展名?(显然,filename#gif不是一个常规的文件名)
更新:根据tvanofsson的评论,我想澄清一下,当JS函数接收到字符串时,该字符串将已经包含没有空格、没有点和其他特殊字符的文件名(实际上它将被处理为一个“slug”)。问题不在于解析文件名,而是在于错误地解析“slug”——当给定“filename-jpg”时,该函数返回了“jpg”的扩展名,而实际上应该返回null或空字符串,并且需要纠正这种行为。
foo bar.zi_
是合法文件名吗?foo.bar.zi_
呢? - tvanfosson