Estoy tratando de buscar variables, lo hago con regex.
Mi primera regex hace algo como:
- Empieza con var,
- luego pueden repetirse espacios 1 o más veces,
- seguido de 1 o más letras,
y hasta ahí me funciona bien.
El problema es que estaba buscando algo para hacer un XOR
en regex. ¿Por qué necesitaría eso? Porque una variable puede ser:
var a, b
o var a;
por lo que solo se debe cumplir o a,
o a;
, por eso una disyunción exclusiva (XOR).
Lo que encontré fué: ^(,|;){1}$
, aunque me sirve si solo tengo una coma y un punto y coma, pero NO me sirve si está todo junto osea, var a
, o var a;
Además de mi problema, ¿por qué a ese regex le agregan ^
y $
, por qué el patrón se conforma de esa manera?
(function(){
var text = "var a, b;"
var regex = /var\s+[a-z]+/ig;
if(regex.test(text)) console.log(text.match(regex));
})();
var newRegex = /var\s+[a-z]+(^(,|;){1}$)0/ig;
if(newRegex.test("var a,b;")) console.log("Done");