Algum padrão de regex está quebrando o mecanismo de regex javascript
Eu escrevi o seguinte regex:/\D(?!.*\D)|^-?|\d+/g
Eu acho que deveria funcionar assim:
\D(?!.*\D) # match the last non-digit
| # or
^-? # match the start of the string with optional literal '-' character
| # or
\d+ # match digits
Mas isso não acontece:
var arrTest = '12,345,678.90'.match(/\D(?!.*\D)|^-?|\d+/g);
console.log(arrTest);
var test = arrTest.join('').replace(/[^\d-]/, '.');
console.log(test);
No entanto, ao reproduzi-lo comPCRE(php)
-sabor online emRegex101. Funciona como eu descrevi.
Não sei se acho que deve funcionar de uma maneira. Ou se houver algum padrão não permitido no javascript regex-flavor.