2011-05-20 10 views
5

He hecho algunas búsquedas, pero no pude encontrar una lista definitiva de los espacios en blanco caracteres incluidos en el \ s en la expresión regular de JavaScript.JavaScript blancos regex caracteres

sé que puedo confiar en el espacio, avance de línea, retorno de carro, y la pestaña como espacios en blanco, pero pensé que desde JavaScript era tradicionalmente sólo para el navegador, tal vez URL codificada espacios en blanco y cosas por el estilo   y %20 serían compatible también.

¿Qué es exactamente considerado por el compilador de expresiones regulares de JavaScript? Si hay diferencias entre los navegadores, solo me interesan los navegadores webkit, pero sería bueno saber si hay alguna diferencia. Además, ¿qué pasa con node.js?

Respuesta

2

HTML = Javascript!. Javascript es completamente literal,% 20 es% 20 y   es una cadena de caracteres & n b s p y;. Para las clases de caracteres, considero que casi todo lo que es RegEx en perl es aplicable en JS (no se pueden hacer grupos con nombre, etc.).

http://www.regular-expressions.info/javascript.html es la referencia que uso.

+0

derecho, pero a menudo JavaScript se ejecuta en el navegador, por lo que supone que puede haber algunos casos especiales. – tjameson

+0

He marcado el suyo como correcto porque ha aclarado la pregunta de raíz. ¡Gracias! – tjameson

6

Una prueba sencilla:

for(var i = 0; i < 1000; i++) { 
    if(String.fromCharCode(i).replace(/\s+/, "") == "") console.log(i); 
} 

Los códigos char (Chrome):

9 
10 
11 
12 
13 
32 
160 
5

Para Mozilla its;

[ \f\n\r\t\v\u00A0\u2028\u2029] 

(Ref)

para IE (JScript) su

[ \f\n\r\t\v] 

(Ref)

+0

¿Cómo lo hace coincidir con el espacio en blanco Unicode? – tchrist

+0

FF parece que sí, para IE en lugar de usar la clase [\ s \ u00A0 \ u2028 \ u2029] –