Entonces tengo esta cadena (de ejemplo): 1234VAR239582358X
Y quiero obtener lo que hay entre VAR y X. Puedo reemplazarlo fácilmente usando .replace(/VAR.*X/, "replacement");
Pero, ¿cómo obtendría el /VAR.*X/
como variable?
creo que lo que buscas puede ser
string.match(/VAR(.*)X/)[1]
Los corchetes alrededor de .* marcan un grupo. Esos grupos se devuelven dentro de la matriz que crea la match
:)
Si solo desea reemplazar lo que está entre "VAR" y "X", sería
string.replace(/VAR(.*)X/, "VAR" + "replacement" + "X");
O más genérico:
string.replace(/(VAR).*(X)/, "$1replacement$2");
Si usted
quiero saber lo que hay entre VAR y X
entonces usar .*
haría el trabajo para la cadena de ejemplo dada.
Pero tenga en cuenta que coincidirá hasta el final de la cadena, y luego volverá a la primera aparición de X
que puede coincidir, siendo la última aparición del carácter X en la cadena y la posible coincidencia demasiado.
Si desea hacer coincidir solo los dígitos, puede hacer coincidir 1+ dígitos en un grupo de captura usando VAR(\d+)X
const regex = /VAR(\d+)X/; const str = "1234VAR239582358X"; const m = str.match(regex); if (m) { let myVariable = m[1]; console.log(myVariable); }
O puede hacer coincidir hasta la primera aparición de un carácter X
usando una clase de carácter negado VAR([^\r\nX]+)X
const regex = /VAR([^\r\nX]+)X/; const str = "1234VAR239582358X"; const m = str.match(regex); if (m) { let myVariable = m[1]; console.log(myVariable); }
Puede almacenarlo como una variable como esta,
const pattern = "VAR.*X"; const reg = new RegExp(pattern);
Entonces usa,
.replace(reg, "replacement");