540 Shares 5382 views

Javascript, ejemplos de expresiones regulares, compruebe de expresiones regulares

Antes de la llegada del lenguaje de hipertexto, sino más bien, hasta que quedó claro que no debemos sólo mirar, sino para hacerlo bajo ciertas condiciones, en un lugar determinado, en virtud de los datos modificados en las cantidades adecuadas, la búsqueda de costumbre y reemplazar la función organizada cualquier sofisticada programador. Crear obras maestras de la búsqueda del estado en lenguajes de programación, bases de datos y se destacó en las formas de condiciones de muestreo, equipado con procedimientos almacenados, triggers y otros medios de voluminosos muestra pistas de información relacional. La aparición de la expresión regular a la revolución no se ha traducido, pero fue una manera útil y conveniente para buscar y reemplazar información. Por ejemplo, las expresiones regulares de JavaScript correo electrónico simplificará en gran medida el registro de visitantes, no cargar la página web de envío de mensajes a direcciones inexistentes.

Decir que una expresión regular JavaScript es mucho mejores secuencias produmannnyh indexOf () llama en el marco del cíclica y operadores convencional, no puede dejar de decir que ha hecho que el código de script es compacto, pero poco comprensible para los no iniciados, puede ser sin ambigüedades.

RegExp Object = + motor de plantillas

Las expresiones regulares – es un motor de plantillas +. La primera es en realidad una expresión regular – objeto JavaScript – la expresión regular, el segundo – esta plantilla intérprete, que se aplica a la línea. Motores que implementan las expresiones regulares para cada lenguaje de programación son diferentes. Y aunque no todas las diferencias son significativas, debe tenerse en cuenta, al igual que asegúrese de comprobar cuidadosamente la expresión regular antes de su operación.

Una notación especial al escribir expresiones regulares es bastante fácil de usar y muy eficaz, pero requiere cuidado, pulcritud y paciencia por parte de los desarrolladores. Por notación patrones de expresiones regulares tienen que acostumbrarse. Esta no es una moda, es la lógica de un mecanismo de aplicación de «las expresiones regulares de JavaScript ".

patrón de expresión regular

Permite dos opciones:

var Expone = / abc * / i;

var expTwo = RegExp ( "abc *", "i");

Normalmente se utiliza el primer método. En el segundo caso, las comillas, porque al utilizar el carácter '', que debe ser escapado por las normas generales.

'I' – bandera que indica "sensible a mayúsculas". También puede utilizar banderas g '- «Global Search' y 'm' – una búsqueda de varias líneas.

El símbolo '/' para indicar común el uso de una plantilla.

El principio y el final de la expresión regular

El '^' define el carácter (s) desde la que iniciar la expresión regular, y el '$' determina qué personaje (s) debe estar en el extremo. Usted no debe experimentar con ellos dentro de una expresión, donde tienen un significado diferente.

Por ejemplo,

var eRegExp = new RegExp (cRegExp, 'i');

cRegRes var = '';

var STest = 'ABCZ';

si (eRegExp.test (STest)) {

cRegRes + = '- Sí';

} Else {

cRegRes + = '- n';

}

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'Expresión /' + cRegExp + '/ para la fila "' + STest + '"' + cRegRes.

El elemento 'scTestLine' resultará (variable cRegExp tiene un significado correspondiente):

expresión / ^ ABCZ $ / la cadena "abcz" – Sí

Si se quita la 'i' de la bandera, el resultado es:

expresión / ^ ABCZ $ / la cadena "abcz" – n

El contenido de una expresión regular

Una expresión regular es una secuencia de caracteres, que es el objeto de la búsqueda. Expresión / qwerty / en busca de la entrada es la siguiente secuencia:

expresión / qwerty / de cadena "qwerty" – Sí

expresión / qwerty / de cadena "123qwerty456" – Sí

Los '^' cambios son expresiones:

expresión / ^ qwerty / de cadena "123qwerty456" – n

expresión / ^ qwerty / de cadena "qwerty456" – Sí

Del mismo modo, para el final del símbolo de línea. Las expresiones regulares permiten la coherencia: por ejemplo, [az], [AZ], [0-9] – todas las letras del alfabeto en este caso o figuras. letras rusas también se pueden utilizar, pero debe prestar atención a la codificación de las cadenas (que se pretende que se busca) y las páginas. A menudo, las letras rusas, así como caracteres especiales, es preferible establecer códigos.

Cuando se forma una expresión regular puede especificar opciones para la presencia de ciertos símbolos en una ubicación en particular, con su número da como sigue: '*' = 0 repetición o más veces; '+' = 1 o más veces de repetición; {1} es lo mismo, como '+'; {N} = repetición exactamente n veces; {N,} = n de repetición veces o más; {N, m} = repetición de n a m veces.

El uso de soportes, puede especificar el conjunto de caracteres de opciones. Parece que este. [Abcd] = [ad] = cada cuatro símbolo: 'a', 'b', 'c' o 'd'. Puede especificar de otro modo. Cualquier carácter distinto de los definidos en el conjunto: [^ abcd] = cualquier carácter distinto de 'a', 'b', 'c' o 'd'. '?' Se indica que en este punto el símbolo no puede ser. '' especifica cualquier carácter que indica la nueva línea. Esta ' n', ' r', ' u2028' o ' u2029'. La expresión ' s * | S *' = '[ s | S] *' significa la búsqueda de cualquier carácter, incluyendo los saltos de línea.

versiones simplificadas de expresión regular

La expresión '[ T | S] *' – espacio de búsqueda, o falta de ella, que es todo lo que está en la línea. En este caso, el símbolo ' s' indica un espacio, y ' S' – su ausencia.

Del mismo modo, puede utilizar ' d' para buscar los dígitos decimales, y ' D' encontrar un carácter no numérico. Notación ' f', 'r' y ' n' corresponde a la de avance del papel, retorno de carro y de avance de línea.

El carácter de tabulación – ' t', vertical – ' v'. La designación ' w' encuentra cualquier carácter alfabeto latino (letras, dígitos, y la marca de subrayado) = [A-Za-z0-9_].

La designación ' W' es equivalente a [^ A-Za-z0-9_]. Esto significa que cualquier carácter que no sea una letra del alfabeto, un número o '_'.

Buscar personaje ' 0' = búsqueda caracteres NUL. Buscar ' xhh' o ' UHHHH' = búsqueda de código de caracteres o HHHH HH respectivamente. H – dígito hexadecimal.

redacción recomendada y codificación de expresión regular

Cualquier expresión regular es importante cuidadosamente probado en diferentes versiones de filas.

Con la experiencia de la creación de un error de expresión regular será menor, pero sin embargo siempre debe tenerse en cuenta que su propio conocimiento de las reglas de escritura de expresiones regulares no puede ser cierto, especialmente cuando la "temporada regular" se transfiere de un idioma a otro.

La elección entre lo clásico (indicación exacta) y una versión simplificada de una expresión regular, es mejor preferir el primero. Después de todo, en los clásicos siempre se indica claramente que tanto buscaba. Si la expresión regular o cadena de búsqueda tienen las letras rusas, debería conducir a una sola codifican todas las líneas y la página en la que opera encontrar JavaScript-código realiza una expresión regular.

Cuando hay un proceso de caracteres, alfabeto no latino, tiene sentido considerar una indicación de los códigos de caracteres, no los propios personajes.

En la aplicación de los algoritmos de búsqueda de expresiones regulares de JavaScript debe ser cuidadosamente revisada. Es particularmente importante el control de la codificación de caracteres.

Los paréntesis en la expresión regular

Los soportes definen las opciones para el símbolo, el cual debe ser o no ser en cierto lugar, y más vueltas – variantes de la secuencia. Pero esto es sólo una regla general. Desde allí no es una excepción, pero hay una gran variedad de aplicaciones.

var cRegExp = "[az] * (png | jpg | gif).";

var eRegExp = new RegExp (cRegExp, 'i');

cRegRes var = '';

var STest = 'picture.jpg';

si (eRegExp.test (STest)) {

cRegRes + = '- Sí';

} Else {

cRegRes + = '- n';

}

resultados:

/[az]*.(png|jpg|gif)/ expresión para la línea "imagen.jpg" – Sí

/^[ad][az]*.(png|jpg|gif)/ expresión para la línea "imagen.jpg" – n

/^[ad][az]*.(png|jpg|gif)/ expresión para la línea "apicture.jpg" – Sí

/^[ad][az]*.(png|jpg|gif)/ expresión para la línea "apicture.jg" – n

Cabe señalar que todos, a continuación, un asterisco puede estar presente cero veces. Esto significa que la "temporada regular" podría funcionar de manera inesperada por lo menos.

Compruebe RegExp – email pruebas

En expresiones regulares JavaScript obtenido dos métodos, prueba y ejecutivo, y se puede utilizar en las líneas de los objetos (String) en sus métodos (funciones): búsqueda, split, reemplazar y combinar.

método de prueba ya se ha demostrado, que le permite comprobar la exactitud de la expresión regular. Método Resultado: verdadero / falso.

Tenga en cuenta las siguientes expresiones regulares de JavaScript. Consultar el correo electrónico desde el número de "difícil, pero sin duda":

var eRegExp = /^(([^()[]\.,;:s@"]+(.[^()[]\.,;:s @ "] +) *) | (". + ")) @ (( [[0-9] {1,3} [0-9] {1,3} [0-9] {.. . 1,3} [0-9] {1,3}]) | (. ([a-zA-Z -0-9] + ) + [a-zA-Z] {2}) ) $ /;

una cadena var STest ='[email protected] 'da cierto, entonces no es esta cadena es la dirección de correo electrónico correcta. La auditoría se realizó por eRegExp.test (STest).

Uso práctico: el tratamiento del correo electrónico

método Exec proporciona la matriz de salida, llamada:

var aResult = eRegExp.exec (STest);

'
' cRegRes = + aResult.length + '
';
for (var i = 0; i <aResult.length; i ++) {
cRegRes + = aResult [i] + '
';
}

Se da el siguiente resultado:

9
[email protected]
Slava.Chip
Slava.Chip
.Chip
indefinido
sci.by
indefinido
sci.by
Sci.

Otros métodos funcionan de manera similar. Se recomienda comprobar a cabo usted mismo. Desarrollo y uso de expresiones regulares, es deseable funcionar en la práctica, la copia de código no siempre es aconsejable aquí.

Popular "temporada regular"

JavaScript expresión regular dada a correo electrónico no sólo hay muchas opciones más fáciles. Por ejemplo, /^[w-.]+@[w-]+.[az]{2,3}$/i. Sin embargo, esta realización tiene en cuenta no todas las realizaciones del registro de dirección de correo electrónico.

Por supuesto, debe ver la experiencia de los colegas, para analizar cómo su propuesta antes de diseñar su propio en expresiones regulares de JavaScript. Sin embargo, hay algunas dificultades. No debemos olvidar que un javascript expresiones regulares (ejemplos de cuando se copia) pueden duplicar los caracteres esenciales: '', '/' o comillas. Esto dará lugar a un error, que se puede buscar mucho.

Es importante tener en cuenta el habitual "dimensión humana". Después de la expresión común de JavaScript formal para el teléfono, que puede ser el visitante (persona), se le da de diferentes maneras: 123-45-67, (29) 1234567, 80291234567 375291234567 o. Y es todo el mismo número. Deletreando múltiples patrones no siempre es aceptable, y la fijación rígida de las reglas para la escritura de los números puede crear incomodidad o restricciones innecesarias. Opción / ^ d [ d () -] {4,14} d $ / i es adecuado para la mayoría de los casos se comprueba su número de teléfono.

Si desea realizar una de las expresiones regulares de JavaScript, sólo comprueba dígitos, incluso un caso tan simple requiere aclaración. Se debe considerar un número entero o fraccionario notación, científica, o el número normal, positivo o negativo. También puede tener en cuenta la existencia del símbolo de moneda, el número de dígitos después del punto decimal y la división de la parte entera del número en la tríada.

Expresión / ^ d + $ / i comprobar sólo números y expresión /^d+.d+$/i permite el uso de un punto para indicar la parte fraccionaria del número.

En JavaScript comprobación de expresiones regulares se puede utilizar para indicar el formato de los datos de entrada con fuerza, lo cual es importante, sobre todo al entrar perfiles, datos de pasaporte, y las direcciones legales t. D.

Compruebe las fechas – simple a lo complejo

Consideremos otro expresiones regulares de JavaScript. Los ejemplos hasta la fecha, como por el número de números de teléfono representan elección entre rigidez y flexibilidad. Fecha del evento – uno de los datos esenciales, que a menudo tienen que ser administrado. Sin embargo, la fijación de la entrada en un formato específico: "dd-mm-aaaa 'o' d.m.gg 'a menudo conduce a la insatisfacción del cliente. La transición desde el campo de entrada del día-a-mes, lleno de formulario HTML-clásico, no puede tener lugar cuando se introduce un solo dígito, y la segunda entrada puede ser difícil. Por ejemplo, en el campo de la día que se introdujo 3 y el siguiente número 2 no reemplaza la primera, y se atribuye a su 32, que, por supuesto, causará molestias.

La eficiencia y la conveniencia de expresiones regulares dependen esencialmente de la construcción general de un diálogo con el visitante. En un caso, para indicar la fecha en que es aconsejable el uso de un campo de entrada de la forma, en el otro caso es necesario prever los diversos campos de día, mes y año. Pero entonces ningún "costos de código" adicionales para comprobar el año bisiesto, el número de meses, el número de días en los mismos.

Buscar y reemplazar, la memoria expresión regular

JavaScript reemplazar (expresiones regulares) utilizando el método del objeto String, y nos permite encontrar el valor y cambiar inmediatamente. Esto es útil para la corrección de errores de escritura, editar el contenido de los campos del formulario y para convertir datos de un formato de presentación a otro.

var cRegExp = / ([a-z] +) s ([a-z] +) s ([a-z] +) / i; // cuando se busca son tres 'variables'

STest var = 'este artículo es bueno!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

var dTestLine = document.getElementById ( 'scTestLine');

dTestLine.innerHTML = 'expresión' + cRegExp + 'para la cadena "' + '+ STest" giro:' + cRegRes;

resultado:

expresión / ([az] +) s ([az] +) s ([az] +) / i para la línea "Este artículo es bueno!" Salida: el artículo es bueno, esto!

Al realizar cada par de paréntesis, almacena el resultado en la 'variable' $ n, donde n – número de pares de soportes ($ 1, $ 2, …). A diferencia convencional, aquí numeración variable es 1, 0 no.

recomendaciones generales

Expresión regular simplifica el código, pero el tiempo para desarrollar a menudo hace la diferencia. Puede comenzar con diseños simples y luego hizo para combinar en expresiones más complejas. Puede utilizar varios servicios en línea para probar expresiones regulares o herramientas especiales locales.

La mejor opción de crear su propia biblioteca de expresiones regulares y sus propias herramientas para probar nuevos desarrollos. Esta es la mejor manera de consolidar la experiencia y para aprender cómo construir rápidamente el diseño fiable y cómodo.

El uso de repetición de caracteres y cadenas, es decir, caracteres especiales '*', '+' y llaves, que indica el número de repeticiones debe guiarse por los principios de simplicidad y conveniencia. Es importante darse cuenta de que una expresión regular para el inicio de su trabajo, y para obtener el resultado es totalmente en la potencia del motor utilizado por el navegador. No todos los idiomas son equivalentes a JavaScript. Cada navegador puede llevar a sus preferencias personales en la interpretación de las expresiones regulares.

La compatibilidad no sólo las páginas y hojas de estilo es, a las expresiones regulares, sino que también tiene que ver. La página utiliza JavaScript, se puede considerar un buen funcionamiento sólo cuando se ha trabajado con éxito en una variedad de navegadores.

JavaScript, cuerdas y RegExp

Por el trabajo adecuado al nivel del cliente, es decir, en el navegador del usuario en JavaScript, que requiere altas habilidades de los desarrolladores. El tiempo suficiente usted tiene la oportunidad de depurar los fondos propios o con la ayuda de las extensiones de terceros, los editores de código, programas independientes de código JavaScript del navegador.

Sin embargo, no todos los casos, el depurador puede manejar y proporcionar un buen soporte para el desarrollador, una rápida detección de errores, detectar cuellos de botella. Los tiempos en que el equipo se ha centrado en los cálculos, en el pasado distante. Ahora, prestar especial atención a la información y la línea de los objetos han llegado a desempeñar un papel importante. El número de cuerdas de acero, y su verdadera naturaleza se manifiestan sólo en el momento y el lugar correcto.

Las expresiones regulares refuerzan la posibilidad de líneas, pero es necesario un auto respeto. RegExp de depuración en su trabajo, incluso si es posible la simulación, la idea no es demasiado interesante.

La comprensión de la estructura y la lógica del objeto RegExp, lo que significa Cadena objeto, la sintaxis y la semántica de JavaScript – un verdadero código seguro y protegido, el funcionamiento estable de cada página y el sitio en su conjunto.