1: Cómo crear expresiones regulares
1. Formato de texto, el método de uso es el siguiente:
/Pattern/Flags (es decir:/mode/mark)
2. Constructor de Segexp, el método de uso es el siguiente:
New Regexp ("Pattern" [, "Flags"]) (es decir: New Regexp ("Patrón" [, "Marca"]))
parámetro:
Patrón: texto que representa la expresión regular
Flags (etiqueta): si especifica este elemento, los indicadores pueden ser uno de los siguientes:
G: Global Match (Full Match)
I: Ignorar el caso (ignorar el caso)
GI: Tanto la coincidencia global como el caso ignoran (coincidir con todos los valores posibles e ignorar el caso)
Nota: No use citas para marcar los parámetros en formato de texto, y no use citas para marcar los parámetros de la función del generador Ergou. Entonces la siguiente expresión
Es equivalente:
/AB+C/I ============================= NUEVA REGEXP ("AB+C", "I")
describir:
Al crear expresiones regulares utilizando funciones de constructor, es necesario usar cadenas normales para evitar reglas (incluya caracteres principales/ en la cadena).
Por ejemplo, las siguientes dos declaraciones son equivalentes:
re = nuevo regexp ("// w+");
re = // w+/
Nota: Regexp tiene atributo preestablecido $
$ 1, ..., $ 9 atributos
Subcavaciones de coincidir entre paréntesis, si corresponde.
Es propiedad de regexp
Estática, solo lea
Proporcionado en JavaScript 1.2, NES 3.0 o superior
Descripción: Porque la entrada es una propiedad estática, no un atributo de objetos de expresión regulares individuales. Puede acceder a esto usando regexp.input
propiedad.
El número de subcadenas que se pueden agregar con paréntesis no se limita, pero los objetos de expresión regulares solo pueden retener los últimos 9. Si desea acceder a todos
La cadena coincidente entre paréntesis, puede usar la matriz devuelta.
<! DocType html public "-// w3c // dtd html 4.0 transitional // en"> <html> <fead> <title> nuevo documento </title> <script lenguaje = "javascript1.2"> var regexp = new REGEXP ("(// w+) // s (// w+)"); str = "John Smith"; Newsstr = str.replace (regexp, "$ 2"); Newsstr2 = str.replace (regexp, "$ 1"); document.write ("Cadena original:"+str+"<br/>"); document.write (Newstr+"<br/>"); document.write (Newstr2+"<br/>"); document.write ('$ 1 ='+regexp. $ 1+"$ 2 ="+regexp. $ 2); </script> </head> <body> </body> </html>2: El método Match () puede recuperar el valor especificado dentro de una cadena, o encontrar una coincidencia para una o más expresiones regulares. Devuelve el valor especificado, no la posición de la cadena.
gramática
StringObject.Match (SearchValue)
StringObject.Match (regexp) Descripción del parámetro
Se requiere un valor de búsqueda. Especifica el valor de la cadena a recuperar.
se requiere regexp. Objeto regexp que especifica el patrón a coincidir. Si el parámetro no es un objeto RegExp, primero debe pasarlo al constructor REGEXP y convertirlo en un objeto REGEXP.
Valor de retorno
Almacena la matriz de resultados coincidentes. El contenido de esta matriz depende de si REGEXP tiene la bandera global g.
ilustrar
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ó.
Ejemplo de uso de coincidencias:
<! DocType html public "-// w3c // dtd html 4.0 Transitional // en"> <html> <fead> <title> nuevo documento </title> <script lenguaje = "javascript1.2"> var str = "1 plus 2 igual 3"; var str2 = "23/11/55"; resultados var = str.match (new Regexp ("// d+", "gi")); for (var i = 0; i <results.length; i ++) {document.write (resultados [i]+"<br/>"); } var res = str2.match (new Regexp ("(// d // d?)/(// d // d?)/(// d // d)")); if (str2.length == res [0] .length) {document.write (res [1]+"<br/>"); document.write (res [2]+"<br/>"); document.write (res [3]+"<br/>"); } </script> </head> <body> </body> </html> function dataCheck (valor) {re = new Regexp ("(// d // d?)/(// d // d?)/(// d // d)"); resultado var = value.match (re); if (resultado) {if (resultado [0] .length! = value.length) {alert ("formato de fecha incorrecta. El formato correcto debe ser mm/dd/yy.") return false; } else {var t = resultado [3]; var y = parseInt ("20" + t); var m = parseint (resultado [1], 10) - 1; var día = parseint (resultado [2], 10); var d = nueva fecha (y, m, día); if (d.getblyar ()! = y || d.getMonth ()! = m || d.getDate ()! = day) {alert ("fecha de error!") return false; } else {var sm = resultado [1] .length == 1? '0' + resultado [1]: resultado [1]; var sday = resultado [2] .length == 1? '0' + resultado [2]: resultado [2]; var sy = resultado [3]; else return sm + '/' + sday + '/' + sy; }}} else {alerta ("formato de fecha incorrecta. El formato correcto debe ser mm/dd/yy."); devolver falso; }}