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");