test solo regulares regular probar numeros expresiones expresion example espacio ejemplos ejemplo blanco alfanumerico javascript jquery regex string

solo - match javascript ejemplo



Expresión regular para obtener una cadena entre paréntesis en Javascript (6)

Intento escribir una expresión regular que devuelva una cadena entre paréntesis. Por ejemplo: quiero obtener la cadena que se encuentra entre las cadenas "(" y ")"

I expect five hundred dollars ($500).

volvería

$500

Se encontró Expresión regular para obtener una cadena entre dos cadenas en Javascript

Pero soy nuevo con regex. No sé cómo usar ''('', '')'' en la expresión regular


Debe crear un conjunto de paréntesis escapados (con / ) (que coincidan con los paréntesis) y un grupo de paréntesis regulares que creen su grupo de captura:

var regExp = //(([^)]+)/)/; var matches = regExp.exec("I expect five hundred dollars ($500)."); //matches[1] contains the value between the parentheses console.log(matches[1]);

Descompostura:

  • /( : coincide con un paréntesis de apertura
  • ( : comenzar a capturar grupo
  • [^)]+ : coincide uno o más caracteres que no son )
  • ) : grupo de captura final
  • /) : paréntesis de cierre de coincidencia

Aquí hay una explicación visual en RegExplained


Para solo dígitos después de un signo de moneda: /(.+/s*/d+/s*/) debería funcionar

O /(.+/) Para cualquier cosa entre corchetes


Prueba la manipulación de cadenas:

var txt = "I expect five hundred dollars ($500). and new brackets ($600)"; var newTxt = txt.split(''(''); for (var i = 1; i < newTxt.length; i++) { console.log(newTxt[i].split('')'')[0]); }

o regex ( que es algo lento comparado con el anterior )

var txt = "I expect five hundred dollars ($500). and new brackets ($600)"; var regExp = //(([^)]+)/)/g; var matches = txt.match(regExp); for (var i = 0; i < matches.length; i++) { var str = matches[i]; console.log(str.substring(1, str.length - 1)); }


Solución simple

Aviso : esta solución se usa para una cadena que solo tiene una sola cadena "(" y ")" en esta pregunta.

("I expect five hundred dollars ($500).").match(//((.*)/)/).pop();

Demostración en línea (jsfiddle)


Transmitió la respuesta de Mr_Green a un estilo de programación funcional para evitar el uso de variables globales temporales.

var matches = string2.split(''['') .filter(function(v){ return v.indexOf('']'') > -1}) .map( function(value) { return value.split('']'')[0] })


var str = "I expect five hundred dollars ($500) ($1)."; var rex = //$/d+(?=/))/; alert(rex.exec(str));

Coincidirá con el primer número que comience con $ y seguido por '')''. '')'' no será parte del partido. El código alerta con la primera coincidencia.

var str = "I expect five hundred dollars ($500) ($1)."; var rex = //$/d+(?=/))/g; var matches = str.match(rex); for (var i = 0; i < matches.length; i++) { alert(matches[i]); }

Este código alerta con todas las coincidencias.

Referencias

busque "? = n" http://www.w3schools.com/jsref/jsref_obj_regexp.asp

busque "x (? = y)" https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/RegExp