InformàticaProgramació

Javascript, expressió regular: exemples, comprovació d'expressions regulars

Abans de l'arribada del llenguatge d'hipertext, sinó més aviat, fins que va quedar clar que no hem de només mirar, sinó per fer-ho sota certes condicions, en un lloc determinat, en virtut de les dades modificades en les quantitats adequades, la recerca de costum i reemplaçar la funció organitzada qualsevol sofisticada programador. Crear obres mestres de la recerca de l'estat en llenguatges de programació, bases de dades i es va destacar en les formes de condicions de mostreig, equipat amb procediments emmagatzemats, triggers i altres mitjans de voluminosos mostra pistes d'informació relacional. L'aparició de l'expressió regular a la revolució no s'ha traduït, però va ser una manera útil i convenient per buscar i reemplaçar informació. Per exemple, les expressions regulars de JavaScript correu electrònic simplificarà en gran mesura el registre de visitants, no carregar la pàgina web d'enviament de missatges a adreces inexistents.

Dir que una expressió regular Javascript és molt millors seqüències produmannnyh indexOf () crida en el marc del cíclica i operadors convencional, no pot deixar de dir que ha fet que el codi de script és compacte, però poc comprensible per als no iniciats, pot ser sense ambigüitats.

RegExp Object = + motor de plantilles

Les expressions regulars - és un motor de plantilles +. La primera és en realitat una expressió regular - objecte JavaScript - l'expressió regular, el segon - aquesta plantilla intèrpret, que s'aplica a la línia. Motors que implementen les expressions regulars per a cada llenguatge de programació són diferents. I encara que no totes les diferències són significatives, cal tenir en compte, igual que assegureu-vos de comprovar acuradament l'expressió regular abans de la seva operació.

Una notació especial en escriure expressions regulars és bastant fàcil d'usar i molt eficaç, però requereix cura, pulcritud i paciència per part dels desenvolupadors. Per notació patrons d'expressions regulars han d'acostumar. Aquesta no és una moda, és la lògica d'un mecanisme d'aplicació de «les expressions regulars de JavaScript".

patró d'expressió regular

Permet dues opcions:

var Exposa = / abc * / i;

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

Normalment s'utilitza el primer mètode. En el segon cas, les cometes, perquè en utilitzar el caràcter '\', que ha de ser escapat per les normes generals.

'I' - bandera que indica "sensible a majúscules". També pot utilitzar banderes g '- «Global Search' i 'm' - una recerca de diverses línies.

El símbol '/' per a indicar comú l'ús d'una plantilla.

El principi i el final de l'expressió regular

El '^' defineix el caràcter (s) des de la qual iniciar l'expressió regular, i el '$' determina quin personatge (s) ha d'estar a l'extrem. No ha d'experimentar amb ells dins d'una expressió, on tenen un significat diferent.

Per exemple,

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 = 'Expressió /' + cRegExp + '/ per a la fila "' + STest + '"' + cRegRes.

L'element 'scTestLine' resultarà (variable cRegExp té un significat corresponent):

expressió / ^ ABCZ $ / la cadena "abcz" - Sí

Si es treu la 'i' de la bandera, el resultat és:

expressió / ^ ABCZ $ / la cadena "abcz" - n

El contingut d'una expressió regular

Una expressió regular és una seqüència de caràcters, que és l'objecte de la recerca. Expressió / qwerty / a la recerca de l'entrada és la següent seqüència:

expressió / qwerty / de cadena "qwerty" - Sí

expressió / qwerty / de cadena "123qwerty456" - Sí

Els '^' canvis són expressions:

expressió / ^ qwerty / de cadena "123qwerty456" - n

expressió / ^ qwerty / de cadena "qwerty456" - Sí

De la mateixa manera, per al final del símbol de línia. Les expressions regulars permeten la coherència: per exemple, [az], [AZ], [0-9] - totes les lletres de l'alfabet en aquest cas o figures. lletres russes també es poden utilitzar, però ha de prestar atenció a la codificació de les cadenes (que es pretén que es busca) i les pàgines. Sovint, les lletres russes, així com caràcters especials, és preferible establir codis.

Quan es forma una expressió regular pot especificar opcions per a la presència de certs símbols en una ubicació en particular, amb el seu número dóna com segueix: '*' = 0 repetició o més vegades; '+' = 1 o més vegades de repetició; {1} és el mateix, com '+'; {N} = repetició exactament n vegades; {N,} = n de repetició vegades o més; {N, m} = repetició de n a m vegades.

L'ús de suports, podeu especificar el conjunt de caràcters d'opcions. Sembla que aquest. [Abcd] = [ad] = cada quatre símbol: 'a', 'b', 'c' o 'd'. Podeu especificar d'una altra manera. Qualsevol caràcter diferent dels definits en el conjunt: [^ abcd] = qualsevol caràcter diferent de 'a', 'b', 'c' o 'd'. '?' S'indica que en aquest punt el símbol no pot ser. '' especifica qualsevol caràcter que indica la nova línia. Aquesta '\ n', '\ r', '\ u2028' o '\ u2029'. L'expressió '\ s * | \ S *' = '[\ s | \ S] *' significa la recerca de qualsevol caràcter, incloent els salts de línia.

versions simplificades d'expressió regular

L'expressió '[\ T | \ S] *' - espai de recerca, o manca d'ella, que és tot el que està en la línia. En aquest cas, el símbol '\ s' indica un espai, i '\ S' - la seva absència.

De la mateixa manera, pot utilitzar '\ d' per buscar els dígits decimals, i '\ D' trobar un caràcter no numèric. Notació '\ f', 'r' i '\ n' correspon a la d'avanç del paper, retorn de carro i d'avanç de línia.

El caràcter de tabulació - '\ t', vertical - '\ v'. La designació '\ w' troba qualsevol caràcter alfabet llatí (lletres, dígits, i la marca de subratllat) = [A-Za-z0-9_].

La designació '\ W' és equivalent a [^ A-Za-z0-9_]. Això vol dir que qualsevol caràcter que no sigui una lletra de l'alfabet, un nombre o '_'.

Cercar personatge '\ 0' = recerca caràcters NUL. Cerca '\ xhh' o '\ AUHHH' = recerca de codi de caràcters o HHHH HH respectivament. H - dígit hexadecimal.

redacció recomanada i codificació de expressió regular

Qualsevol expressió regular és important acuradament provat en diferents versions de files.

Amb l'experiència de la creació d'un error d'expressió regular serà menor, però no obstant això sempre s'ha de tenir en compte que el seu propi coneixement de les regles d'escriptura d'expressions regulars no pot ser cert, especialment quan la "temporada regular" es transfereix d'un idioma a un altre.

L'elecció entre el clàssic (indicació exacta) i una versió simplificada d'una expressió regular, és millor preferir el primer. Després de tot, en els clàssics sempre s'indica clarament que tant buscava. Si l'expressió regular o cadena de cerca tenen les lletres russes, hauria de conduir a una sola codifiquen totes les línies i la pàgina en la qual opera trobar estigui habilitat-codi realitza una expressió regular.

Quan hi ha un procés de caràcters, alfabet no llatí, té sentit considerar una indicació dels codis de caràcters, no els propis personatges.

En l'aplicació dels algoritmes de recerca d'expressions regulars de JavaScript ha de ser acuradament revisada. És particularment important el control de la codificació de caràcters.

Els parèntesis en l'expressió regular

Els suports defineixen les opcions per al símbol, el qual ha de ser o no ser en cert lloc, i més voltes - variants de la seqüència. Però això és només una regla general. Des d'allí no és una excepció, però hi ha una gran varietat d'aplicacions.

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';

}

resultats:

/[az]*.(png|jpg|gif)/ expressió per a la línia "imatge.jpg" - Sí

/^[ad][az]*.(png|jpg|gif)/ expressió per a la línia "imatge.jpg" - n

/^[ad][az]*.(png|jpg|gif)/ expressió per a la línia "apicture.jpg" - Sí

/^[ad][az]*.(png|jpg|gif)/ expressió per a la línia "apicture.jg" - n

Cal assenyalar que tots, a continuació, un asterisc pot estar present zero vegades. Això vol dir que la "temporada regular" podria funcionar de manera inesperada com a mínim.

Comproveu RegExp - email proves

En expressions regulars estigui habilitat obtingut dos mètodes, prova i executiu, i es pot utilitzar en les línies dels objectes (String) en els seus mètodes (funcions): recerca, split, reemplaçar i combinar.

mètode de prova ja s'ha demostrat, que li permet comprovar l'exactitud de l'expressió regular. Mètode Resultat: vertader / fals.

Tingueu en compte les següents expressions regulars de JavaScript. Consultar el correu electrònic des del nombre de "difícil, però sens dubte":

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 ='SlavaChip@sci.by 'dóna cert, llavors no és aquesta cadena és l'adreça de correu electrònic correcta. L'auditoria es va realitzar per eRegExp.test (STest).

Ús pràctic: el tractament del correu electrònic

mètode Exec proporciona la matriu de sortida, anomenada:

var aResult = eRegExp.exec (STest);

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

Es dóna el següent resultat:

9
Slava.Chip@sci.by
Slava.Chip
Slava.Chip
.Chip
indefinit
sci.by
indefinit
sci.by
Sci.

Altres mètodes funcionen de manera similar. Es recomana comprovar a terme vostè mateix. Desenvolupament i ús d'expressions regulars, és desitjable funcionar en la pràctica, la còpia de codi no sempre és aconsellable aquí.

Popular "temporada regular"

JavaScript expressió regular donada a correu electrònic no només hi ha moltes opcions més fàcils. Per exemple, /^[\w-\.]+@[\w-]+\.[az]{2,3}$/i. No obstant això, aquesta realització té en compte no totes les realitzacions del registre d'adreça de correu electrònic.

Per descomptat, ha de veure l'experiència dels col·legues, per analitzar com la seva proposta abans de dissenyar el seu propi en expressions regulars de JavaScript. No obstant això, hi ha algunes dificultats. No hem d'oblidar que un javascript expressions regulars (exemples de quan es copia) poden duplicar els caràcters essencials: '\', '/' o cometes. Això donarà lloc a un error, que es pot buscar molt.

És important tenir en compte l'habitual "dimensió humana". Després de l'expressió comuna de JavaScript formal per al telèfon, que pot ser el visitant (persona), se li dóna de diferents maneres: 123-45-67, (29) 1234567, 80291234567 375.291.234.567 o. I és tot el mateix nombre. Lletrejant múltiples patrons no sempre és acceptable, i la fixació rígida de les regles per a l'escriptura dels nombres pot crear incomoditat o restriccions innecessàries. Opció / ^ \ d [\ d \ (\) \ -] {4,14} \ d $ / i és adequat per a la majoria dels casos es comprova el seu número de telèfon.

Si desitja realitzar una de les expressions regulars de JavaScript, només comprova dígits, fins i tot un cas tan simple requereix aclariment. S'ha de considerar un nombre enter o fraccionari notació, científica, o el nombre normal, positiu o negatiu. També pot tenir en compte l'existència del símbol de moneda, el nombre de dígits després del punt decimal i la divisió de la part sencera del número a la tríada.

Expressió / ^ \ d + $ / i comprovar només números i expressió /^\d+\.\d+$/i permet l'ús d'un punt per indicar la part fraccionària del nombre.

En estigui habilitat comprovació d'expressions regulars es pot utilitzar per indicar el format de les dades d'entrada amb força, la qual cosa és important, sobretot en entrar perfils, dades de passaport, i les adreces legals t. D.

Comproveu les dates - simple al complex

Considerem un altre expressions regulars de JavaScript. Els exemples fins a la data, com pel nombre de números de telèfon representen elecció entre rigidesa i flexibilitat. Data de l'esdeveniment - una de les dades essencials, que sovint han de ser administrat. No obstant això, la fixació de l'entrada en un format específic: "dd-mm-aaaa 'o' d.m.gg 'sovint condueix a la insatisfacció del client. La transició des del camp d'entrada del dia-a-mes, ple de formulari HTML-clàssic, no pot tenir lloc quan s'introdueix un sol dígit, i la segona entrada pot ser difícil. Per exemple, en el camp de la dia que es va introduir 3 i el següent número 2 no reemplaça la primera, i s'atribueix al seu 32, que, per descomptat, causarà molèsties.

L'eficiència i la conveniència d'expressions regulars depenen essencialment de la construcció general d'un diàleg amb el visitant. En un cas, per indicar la data en què és aconsellable l'ús d'un camp d'entrada de la forma, en l'altre cas cal preveure els diversos camps de dia, mes i any. Però llavors cap "costos de codi" addicionals per comprovar l'any de traspàs, el nombre de mesos, el nombre de dies en els mateixos.

Buscar i reemplaçar, la memòria expressió regular

JavaScript reemplaçar (expressions regulars) utilitzant el mètode de l'objecte String, i ens permet trobar el valor i canviar immediatament. Això és útil per a la correcció d'errors d'escriptura, editar el contingut dels camps del formulari i per convertir dades d'un format de presentació a un altre.

var cRegExp = / ([a-z] +) \ s ([a-z] +) \ s ([a-z] +) / i; // quan es busca són tres 'variables'

STest var = 'aquest article és bo!';
var cRegRes = sTest.replace (cRegExp, "$ 2, $ 3, $ 1");

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

dTestLine.innerHTML = 'expressió' + cRegExp + 'per a la cadena "' + '+ STest" gir:' + cRegRes;

resultat:

expressió / ([az] +) \ s ([az] +) \ s ([az] +) / i per a la línia "Aquest article és bo!" Sortida: l'article és bo, això!

En realitzar cada parell de parèntesis, emmagatzema el resultat a la 'variable' $ n, on n - nombre de parells de suports ($ 1, $ 2, ...). A diferència convencional, aquí numeració variable és 1, 0 no.

recomanacions generals

Expressió regular simplifica el codi, però el temps per desenvolupar sovint fa la diferència. Pot començar amb dissenys simples i després va fer per combinar en expressions més complexes. Podeu utilitzar diversos serveis en línia per provar expressions regulars o eines especials locals.

La millor opció de crear la seva pròpia biblioteca d'expressions regulars i les seves pròpies eines per provar nous desenvolupaments. Aquesta és la millor manera de consolidar l'experiència i per aprendre com construir ràpidament el disseny fiable i còmode.

L'ús de repetició de caràcters i cadenes, és a dir, caràcters especials '*', '+' i claus, que indica el nombre de repeticions ha de guiar-se pels principis de simplicitat i conveniència. És important adonar-se que una expressió regular per a l'inici del seu treball, i per obtenir el resultat és totalment en la potència del motor utilitzat pel navegador. No tots els idiomes són equivalents a JavaScript. Cada navegador pot portar els seus preferències personals en la interpretació de les expressions regulars.

La compatibilitat no només les pàgines i fulls d'estil és, a les expressions regulars, sinó que també té a veure. La pàgina utilitza JavaScript, es pot considerar un bon funcionament només quan s'ha treballat amb èxit en una varietat de navegadors.

JavaScript, cordes i RegExp

Per la feina adequat al nivell del client, és a dir, en el navegador de l'usuari en JavaScript, que requereix altes habilitats dels desenvolupadors. El temps suficient vostè té l'oportunitat de depurar els fons propis o amb l'ajuda de les extensions de tercers, els editors de codi, programes independents de codi JavaScript del navegador.

No obstant això, no tots els casos, el depurador pot gestionar i proporcionar un bon suport per al desenvolupador, una ràpida detecció d'errors, detectar colls d'ampolla. Els temps en què l'equip s'ha centrat en els càlculs, en el passat distant. Ara, prestar especial atenció a la informació i la línia dels objectes han arribat a exercir un paper important. El nombre de cordes d'acer, i la seva veritable naturalesa es manifesten només en el moment i el lloc correcte.

Les expressions regulars reforcen la possibilitat de línies, però cal un acte respecte. RegExp de depuració en el seu treball, fins i tot si és possible la simulació, la idea no és massa interessant.

La comprensió de l'estructura i la lògica de l'objecte RegExp, el que significa Cadena objecte, la sintaxi i la semàntica de JavaScript - un veritable codi segur i protegit, el funcionament estable de cada pàgina i el lloc en el seu conjunt.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 ca.delachieve.com. Theme powered by WordPress.