Las expresiones regulares describen un patrón de coincidencia de cadenas, que se puede usar para verificar si una cadena contiene una determinada subcandina, reemplazar la subcadena coincidente o sacar una subcadena que cumpla con una determinada condición de una cierta cadena, etc.
Debido a que las expresiones regulares no se usan con frecuencia, son fáciles de olvidarlas con frecuencia. El siguiente editor enumera las funciones y funciones de uso común aquí de manera concisa para una visualización futura:
Hay 2 funciones comúnmente utilizadas del objeto regexp
1. Función de prueba
Uso: RegexPobject.Test (String)
Return: true Si la cadena de cadena contiene texto que coincide con RegExPobject, de lo contrario falso.
Descripción: No hay nada especial en este método, y no hay un tratamiento especial para el modificador G
Ejemplo:
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /a=1/;console.log(reg.test(url)); // El resultado de la salida es verdadero
2. Función exec
Uso: RegexPobject.Exec (String)
Regreso: Devuelve una matriz donde se almacenan los resultados coincidentes. Si no se encuentra ninguna coincidencia, el valor de retorno es nulo.
describir:
El método Exec () es muy poderoso. Es un método general y es más complejo de usar que el método test () y los métodos que admiten expresiones regulares.
Si exec () encuentra un texto coincidente, se devuelve una matriz de resultados. De lo contrario, regrese nulo. El elemento 0 de esta matriz es el texto que coincide con la expresión regular, el primer elemento es el texto que coincide con la primera subexpresión de RegexPobject, si lo hay, el segundo elemento es el texto que coincide con la segunda subexpresión de RegexPobject, y así sucesivamente. Además del atributo de elemento y longitud de matriz, el método Exec () devuelve dos propiedades. La propiedad del índice declara la posición del primer carácter que coincide con el texto. La propiedad de entrada almacena la cadena de cadena recuperada. Podemos ver que al llamar al método Exec () de un objeto REGEXP no global, la matriz devuelta es la misma que la matriz devuelta llamando al método string.match ().
Sin embargo, cuando RegexPobject es una expresión regular global, el comportamiento de Exec () es ligeramente más complicado. Comienza a buscar cadena de cadena en el carácter especificado por la propiedad LastIdex de RegexPobject. Cuando exec () encuentra que el texto coincide con la expresión, después de la coincidencia, establece la propiedad de LastIdex de RegexPobject a la siguiente posición del último carácter del texto coincidente. Es decir, puede iterar a través de todo el texto coincidente en la cadena llamando al método exec () repetidamente. Cuando exec () ya no puede encontrar el texto coincidente, devuelve nulo y restablece la propiedad LastIndex a 0.
Ejemplo:
Expresión regular con el modificador G
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /([^?&=fontnonty+)=(bar^?&=fontensole.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(reg.exec(url)); // ["b = 2", "b", "2", índice: 25, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(reg.exec(url)); // ["c = 3", "c", "3", índice: 29, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(reg.exec(url)); //nullreg.lastIndex = 0; // Este código es muy importante, preste atención a la comprensión de console.log (reg.exec (url)); // ["a = 1", "a", "1", índice: 21, entrada: http://www.baidu.com?a=1&b=2&c=3]
Expresiones regulares sin modificador G
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg = /([^?&=fontnonty+)=(bar^?&=fontensole.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(reg.exec(url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>LastIndex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>LastIndex = 0; console.log (reg.exec (url)); // ["a = 1", "a", "1", índice: 21, entrada: http://www.baidu.com?a=1&b=2&c=3]
¿Has encontrado algo diferente? Lea la descripción de la función cuidadosamente y comprenderá ^_ ^
Hay 4 funciones de objeto de cadena que admiten regularidad, solo hablaremos de 2 de ellas.
1. Función de coincidencia
Uso: StringObject.Match (SearchValue | Regexp), aquí solo hablamos sobre el modo regexp
Valor de retorno: matriz que almacena resultados coincidentes. El contenido de esta matriz depende de si REGEXP tiene la bandera global g.
describir:
El método Match () recupera la cadena StringObject para encontrar uno o más texto de coincidencia de reglas. El comportamiento de este método depende en gran medida de si REGEXP tiene la bandera g.
Si Regexp no tiene Flag G, el método Match () solo puede realizar una coincidencia una vez en StringObject. Si no se encuentra ningún texto coincidente, Match () devuelve nulo. De lo contrario, devuelve una matriz que almacena información sobre el texto coincidente que encontró. El elemento 0 de la matriz almacena el texto coincidente, mientras que el texto de los restaurantes coincide con la subexpresión de la expresión regular. Además de estos elementos de matriz regulares, la matriz devuelta también contiene dos propiedades de objetos. El atributo de índice declara la posición del carácter inicial que coincide con el texto en el StringObject, y el atributo de entrada declara una referencia al StringObject.
Si Regexp tiene el Flag G, el método Match () realiza una búsqueda global, encontrando todas las subcadenas coincidentes en StringObject. Si no se encuentra una subcadena coincidente, se devuelve NULL. Si se encuentran una o más subcadenas coincidentes, se devuelve una matriz. Sin embargo, el contenido de la matriz devuelta por Global Match es muy diferente del primero. Su elemento de matriz almacena todas las subcadenas coincidentes en StringObject, y no hay atributo de índice o atributo de entrada.
Ejemplo:
Sin modificador G
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg =/(^? & =]+) = ([^? &])*/; var result = url.match (reg); console.log (resultado); // ["a = 1", "a", "1", índice: 21, entrada: "http://www.baidu.com?a=1&b=2&c=3"font>console.log(result.index); //21console.log(Result.Input); //http://www.baidu.com?a=1&b=2&c=3"font>console.log(result.input); //http://www.baidu.com?a=1&b=2&c=3
Con modificador g
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg =/(^? & =]+) = ([^? &])*/g; var result = url.match (reg); console.log (resultado); // ["a = 1", "b = 2", "c = 3"] console.log (resultado.index); //undefinedconsole.log(Result.Input); //indefinido
¿Has encontrado algo diferente? Lea la descripción de la función cuidadosamente y comprenderá ^_ ^
2. Reemplazar la función
Uso: StringObject.replace (regexp/substr, reemplazo)
Valor de retorno: una nueva cadena obtenida después de reemplazar la primera coincidencia o todas las coincidencias de regexp con reemplazo.
Descripción: El método reemplazar () de la cadena StringObject realiza una operación de búsqueda y reemplazo. Buscará sustras que coincidan con Regexp en StringObject y reemplazarán esas sustros con reemplazo. Si Regexp tiene el Bandero G Global G, el método Reemplazar () reemplaza todas las subcadenas coincidentes. De lo contrario, solo reemplaza la primera subcadena coincidente.
El reemplazo puede ser una cadena o una función. Si es una cadena, cada coincidencia será reemplazado por la cadena. Pero el personaje $ en reemplazo tiene un significado específico. Como se muestra en la siguiente tabla, establece que la cadena obtenida de la coincidencia de patrones se utilizará para el reemplazo.
| personaje | Reemplazar texto |
|---|---|
| $ 1, $ 2, ... $ 99 | Texto que coincide con las subexpresiones del 1 de 99 en Regexp. |
| $ Y | Una subcadena que coincide con REGEXP. |
| $ ' | Texto a la izquierda de la subcadena coincidente. |
| $ ' | Texto a la derecha de la subcadena coincidente. |
| $$ | Símbolo de medición directa. (Significa que cuando desee reemplazarlo con el símbolo $, escriba dos $) |
Ejemplo:
Sin modificador G
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg =/(^? & =]+) = ([^? &])*/; var url1 = url.replace (reg, function (a, b, c, d, e) {console.log (a, b, c, d, e); http://www.baidu.com?a=1&b=2&c=3return 'ok';}) console.log (url1); //http://www.baidu.com?ok&b=2&c=3Con modificador g
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg =/(^? & =]+) = ([^? &])*/g; var url1 = url.replace (reg, function (a, b, c, d, e) {console.log (a, b, c, d, e); a = 1, a, 1, 21, http://www.baidu.com?a=1&b=2&c=3 y b = 2, b, 2, 25, http://www.baidu.com?a=1&b=2&c=3 y | 'OK';}) Console.log (url1); //http://www.baidu.com?ok&okCuando el segundo parámetro es una cadena
var url = 'http://www.baidu.com?a=1&b=2&c=3';var reg =/(^? & =]+) = ([^? &])*/; // sin modificador gvar url1 = url.replace (reg, "$ &") console.log (url1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b=2&c=3var url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&b=2&c=3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&b=2&c=3var reg =/(^? & =]+) = ([^? &])*/g; // con modificador gvar url1 = url.replace (reg, "$ &") console.log (URL1); //http://www.baidu.com?a=1&b=2&c=3var url1 = url.replace (reg, "$ 1") console.log (url1); //http://www.baidu.com?a&b&cvar url1 = url.replace (reg, "$ 2") console.log (url1); //http://www.baidu.com?1&2&3var url1 = url.replace (reg, "$ '") console.log (url1); //http://www.baidu.com?&b=2&c=3&c=3&
Lo anterior es el análisis exhaustivo de las funciones Match, Reemplazar, Exec y otras en las cadenas JS y las expresiones regulares introducidas por el editor. Espero que sea útil para todos. Si tiene alguna pregunta, déjame un mensaje y el editor responderá a todos a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!