2011-03-19 11 views

Respuesta

3

http://www.regular-expressions.info/

Es una expresión regular. // es la sintaxis de una expresión regular, todo lo que se encuentre entre los/'se evaluará en la entrada y todo lo que coincida con la expresión se pasará a la función que esté utilizando.

El g al final de // significa "global", eso significa hacer la búsqueda en toda la entrada en lugar de solo la primera coincidencia que encuentre. Las expresiones regulares son muy populares y pueden ser muy complicadas, lea sobre ellas en el enlace de arriba.

Javascript tiene algunos métodos que usan expresiones regulares, como search y match. Las expresiones regulares existen en muchos lenguajes de programación, por lo general son ligeramente diferentes en cada idioma. http://www.w3schools.com/jsref/jsref_obj_regexp.asp

\s es uno de los muchos caracteres especiales, este significa "cualquier carácter de espacio en blanco".

20

Es una expresión regular en el que el \s significa "espacio en blanco partido" y el g es una bandera que significa "global", es decir, todo partido espacios en blanco, no sólo la primera.

+0

OP lo utiliza para reemplazar * espacios *, presumiblemente solo un carácter de espacio normal. Probablemente valga la pena señalar el riesgo de un error: existen otros tipos de espacios en blanco que se reemplazarán con esta expresión. – kojiro

8

It (/.../) es un literal de expresión regular - se crea un nuevo objeto RegExp simplemente como "bueno" crea una nueva cadena (hay algunas pequeñas salvedades con cadena Cadena vs pero ...) Más información se puede encontrar en la página de documentación Mozilla Regular Expression.

La "g" al final es una bandera que significa "coincidencia global" (la expresión regular ahora coincidirá varias veces; de lo contrario, coincidiría solo una vez).

El \ s es un escape de expresión regular y significa "cualquier carácter de espacio en blanco". Específicamente: "Coincide con un solo carácter de espacio en blanco, incluido espacio, pestaña, avance de página, avance de línea. Equivalente a [\ f \ n \ r \ t \ v \ u00A0 \ u2028 \ u2029].", Del enlace anterior.

Al pasar al String.replace function, todas las coincidencias del objeto de expresión regular (el literal solo crea el objeto) serán reemplazadas por la cadena dada (opcionalmente, String.replace puede usar una función de devolución de llamada para mayor flexibilidad).

Como se discutió en el enlace del desarrollador, el mismo objeto también podría construirse sin un literal de expresión regular. El siguiente fragmento de solo intenta mostrar el objeto en la naturaleza de un objeto RegExp, así como la demostración de la forma no literal, etc.

// note the double \'s as first needed to pass the \ through the string 
// literal parsing -- usually better as /\s/g unless need to build regex dynamically 
var re = new RegExp("\\s", "g") 
// just an object with its own properties/functions (now stored in `re`) 
re.test("have a space") // -> true 
re.test("nospace")  // -> false 
"hello world again!".replace(re, "") // -> "helloworldagain!" 
// without "g", matches only once 
"hello world again!".replace(/\s/, "") // -> "helloworld again!" 

feliz codificación.

6
/\s/g 

/ es el delimitador de expresiones regulares.Esto marca el comienzo y el final de un patrón

\s coincidir todos los caracteres de espacio: '\t', '\n', '\r', '\f', ' ' y a number of others

g significa que la expresión regular debe match the string globally, de manera que str.replace reemplazará todas las apariciones del patrón.

0

g indicador global es importante porque, de lo contrario, solo el primer carácter coincidente blanco /s/ ritmo será reemplazado.

Cuestiones relacionadas