Como pegar uma String que está entre tags com Javascript utilizando Regex – javascript regex

Pergunta:


Eu tenho a seguinte string:

var text = "Meu nome <[email protected]>";

Gostaria de pegar apenas o [email protected], utilizando Regex.

Autor da pergunta fernandoocf

Lucas Costa

Usando a API de regex do Javascript:

var text = "Meu nome <[email protected]>";
var regex = /(<)(.*)(>)/;

console.log(regex.exec(text)[2]);

Explicando

  • // delimita a área para executar uma regex
  • (<) procura por uma string que começa com <
  • (.*) Qualquer caracter dentro de <
  • (>) final do recorte que termine com >

Essa regex irá retornar um resultado de três grupos, por isso o regex.exec(text)[2], que irá pegar somente o e-mail.

Você pode fazer assim:

var text = "Meu nome <[email protected]>";
var email = text.replace(/.*<(.*)>.*/, '$1');

console.log(email);

Note que o $1 representa o (.*), entre o < e o >, que no caso é o email.

Você pode achar mais informações sobre regex aqui.

O ideal para estes casos é pensar no máximo da informações possíveis que gerem um padrão de captura.

Exemplo

Você disse que quer o que esta entre do < e >

  • Você considera que é um email? sim? então poderia definir que deve ter um @ e quais caracteres especiais serão validos, ex.: _-.
  • Se não é um e-mail, você considera que pode capturar o próprio >? (seu caractere final). ex.: <var1 > var2>

Resolução

Como eu não sei exatamente o que é a sua captura vou considerar as que citei acima.

Todos os resultado que deseja se encontram no grupo 1.

Nota

** : lembrando que você pode adicionar caracteres especiais nas partes de []. ex.: [a-z_-.]

Adendo

Caso você queira capturar vários de uma vez, basta por a flag g no final das regex.

Utilização

var text ="Meu nome <[email protected]>";
var r = /<([^>]+)>/
console.log(r.exec(text)[1])

Sei que a pergunta já está respondida, mas e se eu quisesse pegar mais de um e-mail?
Essas expressões regulares só estão funcionando pra um e-mail.

Fiz a função abaixo, que embora não utilize expressões regulares, possui a funcionalidade de localizar e guardar o conteúdo entre < e > de uma ou mais ocorrências.

	<script>
	var texto = "Meus emails são <[email protected]>,<[email protected]>  e <[email protected]>";
	
	// Função que localiza conteúdo(emails) entre < e > e guarda em array
	function localizar_tags(texto)
	{
		var emails = new Array();
		i = 0;
		
		while(texto.search("<") != -1)
		{	
			pos_inicio = texto.search("<");
			pos_fim = texto.search(">");
			
			email = texto.substring(pos_inicio+1, pos_fim); 
			emails[i]=email;
			
			texto = texto.substring(pos_fim+1,texto.length); 
			i++; 		
		}
		
		return emails;
	}
	
	// Para testar a função
	window.onload=function()
	{
		emails = localizar_tags(texto);
		
		for(i=0;i<emails.length;i++)
		{
			console.log(emails[i]);
		}
	}
	</script>

Fonte

Related Posts:

Qual a diferença entre AppCompatActivity e Activity? – android android-activity
Pergunta: Qual a diferença da AppCompatActivity para Activity ? A partir de qual versão a AppCompatActivity foi adicionada ao Android? Autor da pergunta Luhhh A diferença reside ...
Como abreviar palavras em PHP? – php string
Pergunta: Possuo informações comuns como nome de pessoas e endereços, e preciso que elas contenham no máximo 30 caracteres sem cortar palavras. Exemplo: 'Avenida Natalino João Brescansin' ...
Qual é a finalidade de um parêntese vazio numa declaração Lambda? – c# expressões-lambda característica-linguagem
Pergunta: Criei um exemplo de uma declaração Lambda sem argumentos, entretanto, estou com duvidas referente a omissão do parêntese vazio () na declaração. Veja o exemplo: class ...
Boas práticas para URI em API RESTful – api rest restful
Pergunta: Estou com dúvida em relação às URIs de alguns recursos da api que estou desenvolvendo. Tenho os recursos projetos e atividades com relação 1-N, ...
Dúvidas sobre a integração do MySQL com Java – java mysql netbeans
Pergunta: Estou criando um sistema no NetBeans, utilizando a linguagem Java e o banco de dados MySQL. Escrevi o seguinte código para realizar a conexão ...
Qual é a finalidade da pasta Model do framework Inphinit? – php inphinit
Pergunta: No Inphinit micro-framework existe a pasta Model que fica dentro da pasta application, e nela é onde ficam as classes, mas eu estou muito ...
Uso do ‘@’ em variáveis – javascript typescript coffeescript
Pergunta: Vejo em algumas linguagens que compilam para javascript, como TypeScript e CoffeeScript, o uso do @ em variáveis, como também, casos em que o ...
Qual tamanho máximo um arquivo JSON pode ter? – json arquivo
Pergunta: Vou dar um exemplo para conseguir explicar minha duvida: Preciso recuperar informação de imagens vindas de uma API, esse banco de imagens me retorna JSON's ...
O que é Teste de Regressão? – terminologia engenharia-de-software testes
Pergunta: Na matéria de Teste de Software o professor abordou um termo chamado Teste de Regressão, isto dentro da disciplina de teste de software. Sendo ...
O que é um construtor da linguagem? – php característica-linguagem
Pergunta: Em PHP, já li e ouvi várias vezes a respeito dos Construtores da Linguagem. Os casos que sempre ouvi falar deles foi em casos ...
Função intrínseca para converter numérico para string – cobol
Pergunta: Estou a tentar saber se existe alguma função intrínseca do COBOL para converter um data numérico para string sem precisar usar a cláusula REDEFINES: ( ...
Porque usar implements? – java android
Pergunta: Qual a diferença entre usar btn.setOnClickListener(new OnClickListener() { e public class MainActivity extends Activity implements OnClickListener{ Estive fazendo um curso de Android e meu professor falou que ...
O que é XHTML e quando deve ser usado? – html xml xhtml
Pergunta: O que eu sei é que o XHTML precisa ser XML válido. Isso implica, por exemplo, que todas as tags precisam ser fechadas. Por ...
Uma placa aceleradora de vídeo pode melhorar o desempenho não-gráfico? [fechada] – desempenho
Pergunta: Para desenvolver em Ruby on Rails, eu utilizo aqui uma máquina virtual do VirtualBox com Ubuntu Server 14.04 sem interface gráfica instalada. Recentemente descobri uma ...
Concat() VS Union() – c# .net
Pergunta: Qual a diferença entre Concat() e Union() ? Quando usar Concat() e quando usar Union() ? Somente pode ser usado em list ? ...

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *