entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

2votos

Expresiones regulares...

Holas tengo una duda con las expresiones regulares ya que soy muy novato con ellas tengo el siguiente string:
"@Prueba1(message='[email protected]' label='correo')"
necesito la forma de obtener por ejemplo el valor de "message" es decir "[email protected]".
Llevo lo siguiente

"message='no puede estar vacio' label='Usuario'".match(/(["']).*\1/);

como resultado, obtengo esto:

["'no puede estar vacio' label='Usuario'", "'"]

Editado
voy en esto

"@notNull(message='no puede estar vacio' label='Usuario')".match(/label\=\'[^\']*\'/);

resultado

["label='Usuario'"]

2 Respuestas

1voto

mrczrt Puntos6900

Hola que tal, ojalá te sirva mi ejemplo, este genera un dato de tipo mapa (JSON) quedaría así:

var info = {};

y la siguiente linea seria :

"@notNull(message='no puede estar vacio' label='Usuario')".replace(/[\( ]+[A-Za-z]+='[^']*/g,function(d){ d=d.slice(1).split("='"); info[d[0]] = d[1]; });

Con esto puedes leer los datos como propiedades osea : info.message o info.label o cualquier otro dato que se encuentre la expresión regular.

Saludos!.

0voto

mrczrt comentado

Corregí una palabra erronea en mi código, saludos.

0voto

Jonattan comentado

Muchas gracias

3votos

Podrías utilizar la siguiente expresión regular:

message='(.*?)'

Tomo por supuesto que la cadena que representará el mensaje no incluirá comillas simples ', es decir, no será algo así:

message='Esto es un mensaje' que contiene una comilla'

En caso de que el contenido de message sí que pueda contener comillas, podrías utilizar entonces esta otra expresión regular:

message='(.*)' label='(.*)'

Si aparte das por supuesto que ni message ni label serán vacías (message='' label='') podrías modificar las expresiones regulares para que en lugar del operador * utilizase el operador +.

Por último decirte que el valor de message está en el grupo uno de la expresión regular.

Espero te sea de utilidad.

Saludos.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta