正则表达式工作,但在区分大小写的情况下失败

时间:2013-11-29 06:27:09

标签: javascript regex

我在javascript中有以下内容,它适用于这种情况;

http://www.google.com


/(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/g

但它失败了:

Http://www.google.com

有没有办法让我的陈述不区分大小写。

3 个答案:

答案 0 :(得分:6)

您可以为忽略大小写匹配添加i flag

/(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/ig

答案 1 :(得分:1)

即使投票是为了添加i标志(这是一个非常有效的解决方案),我也会指出保留正则表达式并调用{{1}更有效率在你的字符串上运行它之前通过正则表达式IFF这是一个选项。

toLowerCase()

答案 2 :(得分:0)

使用以下行

/(^|<|\s)(((https?|ftp):\/\/|mailto:).+?)(\s|>|$)/i

/ g启用“全局”匹配。使用replace()方法时,请指定此修饰符以替换所有匹配项,而不是仅替换第一个匹配项。 / i使正则表达式匹配不区分大小写。 / m启用“多行模式”。在此模式下,插入符号和美元在主题字符串中的换行符之前和之后匹配。