Bueno, las expresiones regulares que usa js están basadas en la implementación de perl, así que no tendrás problema.
Mira a ver si este ejemplo te sirve de orientación
Código:
<script type="text/javascript">
var pat = /[gif]$|[jpg]$|[jpeg]$/
function verifica(donde){
alert(pat.test(donde.toLowerCase()))
if(pat.test(donde.toLowerCase())){
imagen = document.createElement('img')
imagen.src = donde
imagen.id = 'pruebaimagen'
if(document.getElementById('pruebaimagen')!=null){
document.getElementById('imagencilla').replaceChild(imagen,document.getElementById('pruebaimagen'))
}
else{
document.getElementById('imagencilla').appendChild(imagen)
}
alert('Ancho imagen: ' + imagen.width + "; alto imagen: " + imagen.height)
}
}
</script>
<style type="text/css">
#imagencilla{
/*visibility: hidden;*/
position: absolute;
width: 100px;
height: 100px;
overflow: hidden;
}
</style>
</head>
<body>
<form name="form1" id="form1" enctype="multipart/form-data" method="post" action="">
<input type="file" name="file" onchange="verifica(this.value)" />
</form>
<div id="imagencilla"></div>
</body>
para poder ver las imágenes mientras juegas un rato con el tema y ves qué pasa quita la línea de los estilos css de visibility: hidden. Básicamente se trata de insertar la imagen en el documento para pedirle al navegador que nos dé sus dimensiones.
La idea, supongo, es que no se vea la imagen, sólo obtener sus dimensiones. Si la imagen es muy grande, aunque no se vea, te sacará la barra de scroll si se sale de la ventana, por eso la metemos dentro de un div oculto de dimensiones fijas y posición absoluta y con un overflow: hidden para que la imagen quede por dentro de la capa y no saque las barras de scroll al navegador. Esto es transparente al usuario que no vé ná pero así obtienes al menos las dimensiones de la imagen
obviamente... hay otras formas de hacer lo mismo. Esta es una como otra cualquiera (tal vez no la mejor, pero sí la que me apetecía
)
Ah, y es multi-navegador, usa el dom y debería funcionar correcto en cualquier navegador a partir de versiones 5 (anteriores, se fastidien y actualicen a un navegador más nuevo)