Informática, Programación
JavaScript, exemplos de expresións regulares, consulte Expresións Regulares
Antes da chegada da linguaxe de hipertexto, pero si, ata que se fixo evidente que non debe só ollar, pero para facelo baixo certas condicións, nun determinado lugar, baixo os datos modificados na cantidade correcta, a procura habitual e substituír a función organizada calquera texto programador. Crear obras mestras da busca artístico en linguaxes de programación, bases de datos e se destacou nas formas de condicións de mostraxe, equipado con procedementos almacenados, gatillo e outros medios de mostra volumes pistas de información relacional. A aparición da expresión regular para a revolución non levou, pero foi un xeito útil e cómodo para localizar e substituír información. Por exemplo, as expresións regulares JavaScript correo simplificar significativamente o rexistro de visitantes, non cargar a páxina web enviar mensaxes a enderezos inexistentes.
Dicir que unha expresión regular JavaScript é moito mellores secuencias produmannnyh indexOf () chámase no marco da cíclica convencional e operadores, non podemos deixar de dicir que fixo que o código de script é compacto, pero pouco comprensible para os non iniciados, pode ser de forma inequívoca.
Regexp obxecto = + modelo de motor
As expresións regulares - é un modelo de motor +. O primeiro é en realidade unha expresión regular - obxecto JavaScript - o regexp, o segundo - este modelo performer, aplicala lo para a liña. Motores que aplican expresións regulares para cada linguaxe de programación son diferentes. E, aínda que non todas as diferenzas son significativas, débese ter en conta, así como asegúrese de comprobar coidadosamente a expresión regular antes da súa operación.
A notación especial ao escribir expresións regulares é moi doado de usar e moi eficaz, pero require coidado, esmero e paciencia do creador. Por notación patróns de expresión regular, se acostumar. Esta non é unha moda, é a lóxica dun mecanismo para aplicar «JavaScript expresións regulares".
patrón de expresión regular
Permitiu dúas opcións:
var EXPONE = / ABC * / i;
var expTwo = regexp ( "ABC *", "i");
Tipicamente é utilizado o primeiro método. No segundo caso, as comiñas, porque, para usar o caracter '\', debe ser precedido polas normas xerais.
'I' - bandera indicando "Case insensitive". Tamén pode usar bandeiras g '- «Global Search' e 'm' - unha investigación multi-line.
O símbolo '/' para indicar común o uso dun modelo.
O inicio eo fin da regexp
O '^' define o carácter (s) do cal quere iniciar a expresión regular, eo '$' determina cal personaxe (s) debe ser o final. Non debe experimentar con eles dentro dunha expresión, onde teñen un significado diferente.
Por exemplo,
var eRegExp = new regexp (cRegExp, 'i');
var cRegRes = ''
var stest = 'ABCZ'
if (eRegExp.test (stest)) {
cRegRes + = '- Yes'
} Else {
cRegRes + = '- O'
}
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'Expresión /' + cRegExp + '/ a liña "' + stest + '"' + cRegRes.
O elemento 'scTestLine' resultará (cRegExp variable ten un significado correspondente):
expresión / ^ ABCZ $ / a cadea "ABCZ" - Si
Se eliminar o 'i' bandeira, o resultado é:
expresión / ^ ABCZ $ / a cadea "ABCZ" - Non hai
O contido de unha expresión regular
Unha expresión regular é unha secuencia de caracteres, que é o suxeito da investigación. Expresión / QWERTY / buscando entrada é a seguinte secuencia:
expresión / QWERTY / para cadea "QWERTY" - Si
expresión / QWERTY / para cadea "123qwerty456" - Si
Os cambios '^' son expresións:
expresión / ^ QWERTY / para cadea "123qwerty456" - Non hai
expresión / ^ QWERTY / para cadea "qwerty456" - Si
Do mesmo xeito, a finais do símbolo de liña. As expresións regulares permiten a consistencia: por exemplo, [az], [Z], [0-9] - todas as letras do alfabeto, neste caso, ou figuras. letras rusas tamén se pode usar, pero debe prestar atención para o conxunto de cadeas (que é demandado que é demandado) e páxinas. Moitas veces letras rusas, así como os caracteres especiais, é preferible establecer códigos.
Cando se forma unha expresión regular pode especificar opcións para a presenza de certos símbolos nun determinado local, co seu número determinado como segue: * '= 0 repetición ou máis veces; '+' = 1 ou máis veces de repetición; {1} é o mesmo, como '+' {N} = repetición exactamente n veces; {N,} = N repetición veces ou máis; {N, m} = repetición de n a m veces.
Usando soportes, pode especificar o conxunto de caracteres de opcións. Parece que este. [ABCD] = [ad] = cada catro símbolo: 'a', 'b', 'c' ou 'D'. Pode especificar o contrario. Calquera carácter diferente do que as especificadas no conxunto: [^ ABCD] = calquera carácter diferente de 'a', 'b', 'c' ou 'D'. '?' El indica que neste momento o símbolo non pode ser. '' especifica ningún carácter que non indica a nova liña. Esta '\ n', '\ r', '\ u2028' ou '\ u2029'. A expresión '\ s * | \ S *' = '[\ s | \ S] * significa a procura de calquera personaxe, incluíndo novas liñas.
versións simplificadas de regexp
A expresión '[\ s | \ S] *' - espazo de procura, ou a falta dela, que é todo o que está na liña. Neste caso, o símbolo '\ s' indica un espazo, e '\ S - a súa ausencia.
Do mesmo xeito, pode utilizar '\ d'para buscar os díxitos decimais, e' \ D'atopar un carácter non numérico. Notación '\ f', 'r' e '\ n' corresponde ao de avance, de retorno e de avance de liña.
O carácter de tabulación - '\ t', vertical - '\ v'. A designación '\ w' atopa calquera carácter alfabeto latino (letras, números, ea marca de subliñado) = [A-Za-z0-9_].
A designación '\ N' é equivalente a [^ A-Za-z0-9_]. Isto significa que calquera carácter que non é unha letra do alfabeto, número ou '_'.
carácter de investigación '\ 0 "= procura caracteres NUL. Buscar '\ xhh' ou '\ uhhhh' = Busca de código de caracteres ou HHHH HH, respectivamente. H - díxitos hexadecimais.
redacción recomendada e codificación de regexp
Calquera expresión regular é importante coidadosamente probado en diferentes versións de liñas.
Coa experiencia de crear un erro de expresión regular será menor, pero, con todo, debe ser sempre mantido en conta que o seu propio coñecemento das normas de escribir expresións regulares non pode ser verdade, especialmente cando a "tempada regular" é trasladado dunha lingua a outra.
Escolla entre o clásico (indicación exacta) e unha versión simplificada dunha expresión regular, é mellor a preferir a primeira. Ao final, nos clásicos sempre claramente indicado que tanto buscaba. Se a expresión regular ou cadea de investigación letras rusas, deberá conducir a unha única codificación todas as liñas ea páxina na que opera atopar JavaScript-código executa unha expresión regular.
Cando hai unha transformación de carácter, alfabeto non latino, ten sentido considerar a indicación dos códigos de caracteres, e non os propios personaxes.
Ao aplicar os algoritmos de procura en expresión regular JavaScript deben ser coidadosamente verificados. É especialmente importante para controlar a codificación de caracteres.
Os parénteses na expresión regular
Os soportes de definir as opcións para o símbolo, que debe ser ou non ser nun determinado lugar, e redondo - variantes da secuencia. Pero esta é só unha regra xeral. Sempre que non hai ningunha excepción, pero hai unha gran variedade de aplicacións.
var cRegExp = "[az] * (png | jpg | gif).";
var eRegExp = new regexp (cRegExp, 'i');
var cRegRes = ''
var stest = 'picture.jpg'
if (eRegExp.test (stest)) {
cRegRes + = '- Yes'
} Else {
cRegRes + = '- O'
}
resultados:
/[az]*.(png|jpg|gif)/ expresión para a liña "picture.jpg" - Si
expresión /^[ad][az]*.(png|jpg|gif)/ para a liña "picture.jpg" - Non hai
/^[ad][az]*.(png|jpg|gif)/ expresión para a liña "apicture.jpg" - Si
expresión /^[ad][az]*.(png|jpg|gif)/ para a liña "apicture.jg" - Non hai
Debe notarse que todo, a continuación, un asterisco poden estar presentes cero veces. Isto quere dicir que a "tempada regular" pode funcionar de formas inesperadas, polo menos.
Comprobe regexp - probando correo electrónico
Na expresión JavaScript regulares obtido dous métodos, proba e exec, e pode ser usado en liñas obxectos (String) nos seus métodos (funcións): busca, separación, substituír e combinar.
método de proba xa foi demostrado, que lle permite comprobar a exactitude da expresión regular. Método Resultado: true / false.
Considere as seguintes expresións regulares do JavaScript. Comprobar correo-e a partir do número de "difícil, pero certamente":
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}) ) $ /;
unha var corda stest ='SlavaChip@sci.by 'dá a verdadeira, non hai esa cadea é o correo-e correcto. O exame foi realizado por eRegExp.test (stest).
uso práctico: Tratamento de correo-e
método exec proporciona a matriz de saída, chame:
var aresult = eRegExp.exec (stest);
'
' cRegRes = + aResult.length + '
'
para (var i = 0; i
'
}
Dá o seguinte resultado:
9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
indefinida
sci.by
indefinida
sci.by
sci.
Outros métodos funcionan de forma semellante. Recoméndase a ve-los ti mesmo. Desenvolvemento e uso de expresións regulares, é desexable para traballar, na práctica, a copia do código non é sempre recomendable aquí.
Popular "tempada regular"
JavaScript expresión regular dada ao correo electrónico non só hai moitas opcións máis fáciles. Por exemplo, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. Con todo, esta forma de realización ten en conta que non todos rexistro de logros enderezo de correo-e.
Por suposto, ten que ver a experiencia de compañeiros, para analizar como a súa proposta antes de proxectar o seu propio en expresións regulares de JavaScript. Pero hai algunhas dificultades. Non debemos esquecer que un JavaScript expresións regulares (exemplos de cando copiar) pode duplicar os caracteres esenciais: '\', '/' ou citas. Isto levará a un erro, que pode buscar por moito tempo.
É importante ter en conta o habitual "dimensión humana". Tras regexp JavaScript formal para o teléfono, que pode ser o visitante (persoa), é dada de diferentes xeitos: 123-45-67, (29) 1234567, 80291234567 ou 375.291.234.567. E é todo o mesmo número. Soletrado varios patróns non sempre é aceptable, e fixación ríxida das normas para escribir números poden crear malestar ou restricións innecesarias. Opción / ^ \ d [\ d \ (\) \ -] {4,14} \ D $ / i é adecuada para a maioría dos casos, comprobar o seu número de teléfono.
Se queres facer un JavaScript expresións regulares, só comproba díxitos, mesmo un caso tan sinxelo require aclaración. Débese considerar un completo ou notación fraccionada, científico, ou o número normal, positiva ou negativa. Tamén pode ter en conta a existencia do símbolo de moeda, o número de díxitos despois do punto decimal e da división de toda a parte do número na tríade.
Expresión / ^ \ D $ / i comprobar só números e expresión /^\d+\.\d+$/i permite o uso de un punto para indicar a parte fraccionada do número.
En JavaScript comprobando expresións regulares poden ser usados para indicar o formato dos datos de entrada dura, o que é importante, especialmente cando entrar perfís, datos de pasaporte e enderezos legais t. D.
Comprobe as datas - simple ao complexo
Considere outro JavaScript expresións regulares. Exemplos ata a data, como ao número de números de teléfono representar elección entre rixidez e flexibilidade. Data do evento - un dos datos esenciais, que moitas veces teñen que ser administrado. Pero a fixación da entrada nun formato específico: "dd-mm-aaaa 'ou' d.m.gg 'moitas veces leva á insatisfacción do cliente. A transición do campo de entrada do día a mes, cheo de-formulario HTML clásico, non pode ter lugar cando entra só un díxito, ea segunda entrada pode ser difícil. Por exemplo, no campo do día en que se introduciu 3 eo seguinte número 2 non substitúe o primeiro, e atribúese a 32, que, por suposto, pode causar inconvenientes.
Eficiencia e conveniencia de expresións regulares dependen esencialmente da construción xeral dun diálogo co visitante. Nun caso, para indicar a data en que se recomenda o uso de un campo de entrada do formulario, no outro caso, é necesario prever os distintos campos ao día, mes e ano. Pero, entón, calquera "custos de código" adicionais para comprobar o ano bisesto, o número de meses, o número de días en si.
Buscar e substituír, memoria expresión regular
JavaScript substituír (expresións regulares), utilizando o método do obxecto String, e nos permite atopar o valor e cambia-lo inmediatamente. Isto é útil para corrixir erros de dixitación, editar o contido dos campos do formulario e para converter datos dun formato de presentación para outro.
var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / I; // cando buscar son tres 'variables'
var stest = 'deste artigo é bo!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");
var dTestLine = document.getElementById ( 'scTestLine');
dTestLine.innerHTML = 'expresión' + cRegExp + 'á cadea "' + stest + '" Turn:' + cRegRes;
resultado:
expresión / ([AZ] +) \ s ([az] +) \ s ([az] +) / i para a liña "Este é bo!" out: o artigo é bo, iso!
Ao realizar cada par de parénteses almacena o resultado en 'variable' $ n, no que n - número de pares de soporte ($ 1, $ 2, ...). A diferenza convencional, aquí numeración variable é 1, non 0.
recomendacións xerais
expresión regular simplifica o código, pero o tempo para desenvolvida lo, moitas veces fai a diferenza. Pode comezar con proxectos simple e despois fixo para combinar en expresións máis complexas. Podes usar varios servizos en liña para probar as expresións regulares ou ferramentas especiais local.
A mellor opción creará a súa propia biblioteca de expresións regulares e as súas propias ferramentas para probar novos desenvolvementos. Esta é a mellor forma de consolidar a experiencia e aprender a construír rapidamente deseño fiable e cómodo.
Usando a repetición de caracteres e cadeas de caracteres, que é, caracteres especiais '*', '+' e cintas, que indica o número de repeticións deben ser guiados polos principios de simplicidade e conveniencia. É importante entender que unha expresión regular para o inicio do seu traballo, e para obter o resultado é enteiramente na potencia do motor utilizado polo navegador. Non todos os idiomas son equivalentes a JavaScript. Cada navegador pode traer as súas preferencias persoais na interpretación de expresións regulares.
Compatibilidade non só páxinas e follas de estilo é, para expresións regulares, el tamén ten que facer. A páxina utiliza JavaScript, pode ser considerado un bo funcionamento só cando traballou con éxito nunha variedade de navegadores.
JavaScript, String e regexp
Polo traballo dereito no nivel do cliente, é dicir, no navegador do visitante en JavaScript, require altas habilidades do creador. Tempo suficiente ten a oportunidade de depurar recursos propios ou coa axuda de extensións de terceiros, editores de código, programas independentes JavaScript código do navegador.
Con todo, non todos os casos, o depurador pode manipular e proporcionar un bo soporte para o creador, a detección de erros rápida, detectar pescozo. As veces cando o computador foi enfocada nos cálculos, no pasado distante. Agora, preste atención especial aos obxectos de información e de liña teñen está a desempeñar un papel significativo. O número de cordas de aceiro, ea súa verdadeira natureza se manifestan só no momento e no lugar seguro.
As expresións regulares reforzan a posibilidade de liñas, pero esixen auto-respecto. Debug regexp no seu traballo, aínda que sexa posible simular, idea non moi interesante.
Comprender a estrutura ea lóxica do obxecto regexp, significando obxecto String, a sintaxe ea semántica de JavaScript - un verdadeiro código seguro, a operación estable de cada páxina eo sitio no seu conxunto.
Similar articles
Trending Now