1: Como criar expressões regulares
1. Formato de texto, o método de uso é o seguinte:
/padrão/sinalizadores (ou seja:/mode/mark)
2.Regexp Construtor, o método de uso é o seguinte:
novo regexp ("padrão" [, "sinalizadores"]) (ou seja: new regexp ("padrony" [, "mark"]))))
parâmetro:
Padrão: texto que representa expressão regular
Flags (tag): Se você especificar este item, os sinalizadores podem ser um dos seguintes:
G: Match Global (partida completa)
I: Ignore Case (Ignore Case)
GI: Caso Global Match e Ignore (corresponda a todos os valores possíveis e ignore o caso)
Nota: Não use aspas para marcar parâmetros no formato de texto e não use cotações para marcar parâmetros da função do gerador Ergou. Então a seguinte expressão
É equivalente:
/ab+c/i ============================= novo regexp ("ab+c", "i")
descrever:
Ao criar expressões regulares usando funções do construtor, é necessário usar strings normais para evitar regras (inclua caracteres líderes/ na string).
Por exemplo, as duas declarações a seguir são equivalentes:
re = novo regexp ("// w+");
re = // w+/
Nota: Regexp tem predefinição $ atributo
$ 1, ..., US $ 9 atributos
Match Subtrings incluídos entre parênteses, se houver.
É de propriedade do regexp
Estático, somente leitura
Fornecido em JavaScript 1.2, NES 3.0 ou acima
Descrição: Como a entrada é uma propriedade estática, não um atributo de objetos individuais de expressão regular. Você pode acessar isso usando regexp.input
propriedade.
O número de substringas que podem ser adicionadas com parênteses não é limitado, mas objetos de expressão regulares só podem reter os últimos 9. Se você quiser acessar todos
A sequência correspondente entre parênteses, você pode usar a matriz retornada.
<! Doctype html public "-// w3c // dtd html 4.0 transitória // pt"> <html> <head> <title> novo documento </ititure> <script linguage = "javascript1.2"> var regexp = new regexp ("(// w+) // s (// s (; str = "John Smith"; Newsstr = str.Replace (regexp, "$ 2"); Newsstr2 = str.Replace (regexp, "$ 1"); document.write ("string original:"+str+"<br/>"); document.write (newstr+"<br/>"); document.write (newstr2+"<br/>"); document.write ('$ 1 ='+regexp. $ 1+"$ 2 ="+regexp. $ 2); </Script> </ad Head> <body> </body> </html>2: O método Match () pode recuperar o valor especificado em uma string ou encontrar uma correspondência para uma ou mais expressões regulares. Ele retorna o valor especificado, não a posição da string.
gramática
StringObject.match (SearchValue)
StringObject.match (regexp) Descrição do parâmetro
SearchValue necessário. Especifica o valor da string a ser recuperado.
Regexp é necessário. Objeto regexp que especifica o padrão a ser correspondido. Se o parâmetro não for um objeto regexp, você precisará passá -lo primeiro para o construtor regexp e convertê -lo em um objeto regexp.
Valor de retorno
Armazena a matriz de resultados correspondentes. O conteúdo dessa matriz depende se o regexp tem o sinalizador global g.
ilustrar
O método Match () recupera o String StringObject para encontrar um ou mais REGEXP correspondentes ao texto. O comportamento desse método depende em grande parte se o regexp tem o sinalizador g.
Se o regexp não tiver sinalizador G, o método Match () poderá executar apenas uma correspondência uma vez no StringObject. Se nenhum texto correspondente for encontrado, corresponde () retornará nulo. Caso contrário, ele retorna uma matriz que armazena informações sobre o texto correspondente encontrado.
Exemplo de uso de correspondência:
<! Doctype html public "-// w3c // dtd html 4.0 transitório // pt"> <html> <head> <title> novo documento </title> <script linguagem = "javascript1.2"> var = "1 mais 2 igual 3"; var str2 = "23/11/55"; var resulta = str.match (novo regexp ("// d+", "gi")); for (var i = 0; i <resultados.length; i ++) {document.write (resultados [i]+"<br/>"); } var res = str2.match (novo 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> </ad Head> <body> </body> </html> função datecheck (value) {re = new regexp ("(// d // d?)/(// d/d?)/(// d/d)"); var resultado = value.match (re); if (resultado) {if (resultado [0] .Length! = value.Length) {alert ("Formato de data incorreta. O formato correto deve ser mm/dd/yy.") retornar false; } else {var t = resultado [3]; var y = parseint ("20" + t); var m = parseint (resultado [1], 10) - 1; var dia = parseint (resultado [2], 10); var d = nova data (y, m, dia); if (d.getlyear ()! = y || d.getmonth ()! = m || d.getdate ()! = dia) {alert ("data de erro!") retorna 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]; caso contrário, retorne sm + '/' + sday + '/' + sy; }}} else {alert ("formato de data errada. O formato correto deve ser mm/dd/yy."); retornar falso; }}