Javascript 仅从带有正则表达式的url获取图像文件名

Javascript 仅从带有正则表达式的url获取图像文件名,javascript,regex,Javascript,Regex,我听说世界上有两个人:一个知道如何注册的人,另一个永远不会知道的人。我想我是第二类:-/ 我有这个网址: http://myserver.com/_images/1-102332-2234.jpg?w=800&h=400&c=1 我需要一个只提取文件名1-102332-2234.jpg的正则表达式 文件结尾可以是所有带有。参数“?w=…”不是必需的 我们正在努力让它工作两天现在。。。任何帮助都将不胜感激 试试这个正则表达式 /[\w-]+\.jpg/g 并支持更多的文件扩展

我听说世界上有两个人:一个知道如何注册的人,另一个永远不会知道的人。我想我是第二类:-/

我有这个网址:

http://myserver.com/_images/1-102332-2234.jpg?w=800&h=400&c=1 
我需要一个只提取文件名1-102332-2234.jpg的正则表达式

文件结尾可以是所有带有。参数“?w=…”不是必需的

我们正在努力让它工作两天现在。。。任何帮助都将不胜感激

试试这个正则表达式

/[\w-]+\.jpg/g
并支持更多的文件扩展名

/[\w-]+\.(jpg|png|txt)/g
var输出=”http://myserver.com/_images/1-102332-2234.jpg?w=800&h=400&c=1“.match(/[\w-]+\.jpg/g);
控制台日志(输出);
//涵盖其他文件扩展名
变量输出=”http://myserver.com/_images/1-102332-2234.jpg?w=800&h=400&c=1.match(/[\w-]+\(jpg | png | txt)/g);

控制台日志(输出)我接受@gurvinder372的答案,并试图解释它以便更好地理解

/[\w-]+.(jpg|png|txt)/g
要解释正则表达式的作用:

/
:分隔符,表示正则表达式的开始和结束

[\w-]
:括号
[
]
包含一组字符的特殊定义。在这种情况下,该集首先应包括预定义字符集
\w
的所有字符,定义为所有字母数字字符和下划线;此外,字符集应包含不属于预定义字符集的连字符
-

+
:是遵循字符集定义的几种可能的量词之一,它表示:“指定字符集的元素至少出现一次”(其他量词为
*
=0、1或更多出现次数,
=0或1出现次数,以及
{n、m}
=至少n次,最多m次

:点表示任意(“任意”)字符。这里真正的意思是
\。
,字符
。“任意”说明符在这里偶然工作,因为点是一个字符

(jpg | png | txt)
:交替:在
任意字符之后,应该出现由垂直条分隔的字符序列之一


/g
:分隔符
/
完成正则表达式后,可以使用几个修饰符。此处的修饰符
g
指示类似
match()的函数
查找尽可能多的与正则表达式匹配的字符串子序列。如果要输入,正则表达式引擎将在找到模式的第一个匹配项后停止搜索。实际上,在这种情况下,这就足够了,因为URL应该只包含一个文件名,所以在找到后可以停止搜索匹配。

“http://myserver.com/_images/1-102332-2234.jpg?w=800&h=400&c=1“.match(/\/([^?\/]+)(?=\?$)/)[1]
@WiktorStribiżew为什么不回答?@gurvinder372:我相信这个问题是其他许多问题的重复。如果我找到一个好的源代码,我会标记这个。我不喜欢回答明显的重复。这里,也许是一个很好的源代码候选者。
在正则表达式中匹配除换行符以外的任何字符,你想逃避它。
g+
匹配一封或多封
g
信,为什么?@WiktorStribiżew谢谢,你像往常一样是对的:)。我已经采纳了您的建议。“发现字符”/“ist”错误。”。前导的
/
只是正则表达式的分隔符。“concat”一词具有误导性,括号内的条表示备选方案。另外,
g
修饰符是不必要的,因为URL可能只包含一个图像文件名。你能更新我的答案吗?有了正确的解释,我已经更新了文本(它现在被标记为“同行评审”,所以你可能还看不到它?)。看到了,显然需要时间,我已经批准了你的编辑:)谢谢