1. Método constructor
var reg = new RegExp ( 'd' , 'gi' ) ;
2. Método literal
var reg = / d / gi ;
Hay tres tipos de modificadores: i, g, m
pueden aparecer al mismo tiempo, sin ningún orden (es decir, gi
es lo mismo que ig
), consulte las instrucciones a continuación
modificador | ilustrar |
---|---|
i | Ignorar coincidencia de casos |
gramo | Coincidencia global, es decir, hacer coincidir una coincidencia y luego continuar haciendo coincidir hasta el final |
metro | Coincidencia de varias líneas, es decir, la coincidencia no se detiene después de encontrar una nueva línea hasta el final |
símbolo | efecto |
---|---|
Como cambio de significado, es decir, los caracteres después de "" generalmente no se interpretan de acuerdo con el significado original. Por ejemplo, /b/ coincide con el carácter "b". Cuando se agrega /b/ delante de b, el carácter "b". El significado del cambio es hacer coincidir un límite de palabra. O la restauración de caracteres de función de expresión regular, como " " coincide con el metacarácter anterior 0 o más veces, /a / coincidirá con a, aa, aaa. Después de agregar "", /a*/ solo coincidirá con "a *". | |
^ | Coincide con una entrada o el comienzo de una línea, /^a/ coincide con "una A", pero no coincide con "Una a" |
$ | Coincide con una entrada o el final de una línea, /a$/ coincide con "An a", pero no coincide con "an A" |
. | Coincide con cualquier carácter, excepto nuevas líneas y terminadores. |
* | Coincide con el metacarácter anterior 0 o más veces, /ba*/ coincidirá con b,ba,baa,baaa |
+ | Coincide con el metacarácter anterior 1 o más veces, /ba+/ coincidirá con ba, baa, baaa |
? | Coincide con el metacarácter anterior 0 o 1 veces, /ba?/ coincidirá con b,ba |
(incógnita) | Haga coincidir x y guarde x en variables denominadas $1...$9 |
incógnita | y |
{norte} | Coincide exactamente n veces |
{norte,} | Coincidir n o más veces |
{Nuevo Méjico} | Coincidir nm veces |
[xyz] | Conjunto de caracteres (conjunto de caracteres), coincide con cualquier carácter (o metacarácter) de este conjunto |
[^xyz] | No coincide con ningún personaje de este conjunto. |
[Arizona] | Cualquier letra [] puede representar a cualquiera. |
[^az] | ^ sin letras [] representa excepto |
[b] | Coincide con un carácter de retroceso |
b | Emparejar un límite de palabra |
B | Emparejar una palabra sin límites |
cX | Aquí, X es un carácter de control, /cM/ coincide con Ctrl-M |
d | Coincide con un carácter alfanumérico, /d/ = /[0-9]/ |
D | Coincide con un carácter no alfanumérico, /D/ = /[^0-9]/ |
norte | Coincide con un carácter de nueva línea |
r | Coincide con un retorno de carro |
F | Coincidir con el feed de formulario |
s | Coincide con un carácter de espacio en blanco, incluidos n, r, f, t, v, etc. |
S | Coincide con un carácter que no es un espacio en blanco, igual a /[^nfrtv]/ |
t | coincidir con un carácter de tabulación |
v | Coincide con un carácter de doble tabulación |
w | Coincide con un carácter que puede formar una palabra (alfanumérico, esta es mi traducción gratuita, incluidos los números), incluidos los guiones bajos, como [w] que coincide con el 5 en "$5.98", que es igual a [a-zA-Z0-9 ] |
W | Coincide con un carácter que no puede formar una palabra, como [W] que coincide con $ en "$5.98", que es igual a [^a-zA-Z0-9] |
Coincide con caracteres NUL |
Las aserciones de ancho cero se usan para encontrar cosas antes o después de algún contenido (pero sin incluir este contenido), es decir, se usan como b,^,$
para especificar una posición que debe cumplir ciertas condiciones (es decir, aserciones), por lo que También se les llama afirmaciones de ancho cero.
afirmación antecedente | También se denomina aserción de anticipación positiva de ancho cero (?=表达式) que significa hacer coincidir la posición antes de la expresión. | Por ejemplo, [az]*(?=ing) puede coincidir con cook y sing en canto de cocina. |
Nota: Los pasos de ejecución de la aserción de anticipación son los siguientes: primero busque el primer ing del extremo derecho de la cadena que debe coincidir (es decir, la expresión en la aserción de anticipación) y luego haga coincidir la expresión anterior si no puede ser. coincide, continúe Encuentre el segundo ing y luego haga coincidir la cadena antes del segundo ing. Si coincide, entonces haga coincidir.
afirmación posterior | También se denomina aserción posterior a la retrospectiva de ancho cero (?<=表达式) que significa hacer coincidir la posición después de la expresión. | Por ejemplo (?<=abc).* puede coincidir con defg en abcdefg |
Nota: La aserción tardía es exactamente lo opuesto a la aserción anticipada. Sus pasos de ejecución son los siguientes: primero busque el primer abc desde el extremo izquierdo de la cadena que debe coincidir (es decir, la expresión en la aserción anticipada). ) y luego haga coincidir la siguiente expresión; si no puede coincidir, continúe buscando el segundo abc y luego haga coincidir la cadena después del segundo abc. Si puede coincidir, se buscará. Por ejemplo, (?<=abc).*
puede coincidir con defgabc en abcdefgabc en lugar de abcdefg
Afirmación negativa de ancho cero | (?!表达式) también coincide con una posición de ancho cero, pero la "afirmación" en esta posición toma el valor inverso de la expresión. Por ejemplo, (?!表达式) representa la posición antes de la expresión. , coincide con esta posición; Si la expresión es verdadera, no coincide: De manera similar, hay dos tipos de afirmaciones negativas de ancho cero: "primera" y "última". La afirmación negativa de ancho cero es (?<!表达式) |
(?<!表达式)
(?!表达式)
Use paréntesis para envolver la cadena coincidente y luego use la expresión $1 en el valor de reemplazo para obtener el valor coincidente actual. Esto puede ser más complicado. Por ejemplo, si hay varios paréntesis, puede usar $1, $2, $3 para obtener. el valor correspondiente. Después de reemplazar todo, estos son los datos que finalmente queremos.
Por ejemplo, la siguiente es una expresión regular en el cuadro de búsqueda, que puede coincidir con todos los atributos class
en la estructura HTML.
className = "([^0-9]+)"
Entonces podemos reemplazar
className = { { $1 } }
Entonces lo hará
className = "xxx" //转化为
className = { { xxx } }
1. Métodos relacionados con el objeto RegExp
nombre del método | Escenarios de uso | valor de retorno | Ejemplo |
---|---|---|---|
prueba | Determinar si coincide | verdadero o falso | /d/.test('eno yao 2019') |
prueba | Devuelve resultados coincidentes, similares a los resultados coincidentes. | matriz o nulo | /d/.exec('eno yao 2019') |
2. Métodos relacionados con objetos de cadena
nombre del método | Escenarios de uso | valor de retorno | Ejemplo |
---|---|---|---|
fósforo | Devuelve el resultado coincidente. En condiciones no globales, es coherente con el resultado devuelto por exec y tiene información que apunta a la cadena coincidente. En condiciones globales, todos los resultados coincidentes se devuelven a la vez. | matriz o nulo | 'eno yao 2019'.match(/d/) |
reemplazar | Reemplace una cadena con otra cadena o reemplace una cadena coincidente normal con otra subcadena | matriz o nulo | 'eno yao 2019'.replace(/d/, '2019') |
buscar | Encuentre la posición de la primera subcadena coincidente y devuelva el valor del índice; de lo contrario, devuelva -1 | índice | 'eno yao 2019'.search(/d/, '2019') |
dividir | Divida la matriz según la cadena o cadena acordada, acepte una cadena o regular | índice | 'eno yao 2019'.search(/d/, '2019') |