我正在使用javascript来测试选择上传到服务器的文件的结尾。
正则表达式是这样的:
(jpg|jpeg|png|gif|bmp)$
只要文件扩展名是小写的,它就能正常工作,但是当我这样做时
/(jpg|jpeg|png|gif|bmp)$/i
我什么都不匹配。
有人可以告诉我为什么吗?我在做什么是错的?
答案 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'))