我的正则表达式出了什么问题?

时间:2010-11-15 16:35:14

标签: javascript regex

我正在使用javascript来测试选择上传到服务器的文件的结尾。

正则表达式是这样的:

(jpg|jpeg|png|gif|bmp)$

只要文件扩展名是小写的,它就能正常工作,但是当我这样做时

/(jpg|jpeg|png|gif|bmp)$/i

我什么都不匹配。

有人可以告诉我为什么吗?我在做什么是错的?

6 个答案:

答案 0 :(得分:2)

/(jpg|jpeg|png|gif|bmp)$/i

你可能也应该包括.,所以“foo.dfpng”“bar.oejpg”等不算数有效的:

/\.(jpg|jpeg|png|gif|bmp)$/i

答案 1 :(得分:2)

使用'i'作为参数 即RegExp(“(jpg | jpeg | png | gif | bmp)$”,“i”)

答案 2 :(得分:1)

使用正斜杠作为正则表达式的边界,而不是反斜杠。

/(jpg|jpeg|png|gif|bmp)$/i

答案 3 :(得分:0)

斜杠是错误的。扭转它们(需要正斜杠)。向后斜杠用于转义字符。

答案 4 :(得分:0)

以下是使用两种正则表达式语法的示例代码:

var rxp = new RegExp('(jpg|jpeg|png|gif|bmp)$', 'i')
var rxp2 = /(jpg|jpeg|png|gif|bmp)$/i
document.write( rxp.exec('foo.jpg') + "<br/>" )
document.write( rxp.exec('foo.JPG') + "<br/>" )
document.write( rxp2.exec('foo.jpg') + "<br/>" )
document.write( rxp2.exec('foo.JPG') + "<br/>" )

答案 5 :(得分:0)

这有效..

var reg=/(jpg|jpeg|png|gif|bmp)$/i
document.write(reg.test('bMp'))