Какой-то шаблон регулярных выражений нарушает механизм регулярных выражений javascript
Я написал следующее регулярное выражение:/\D(?!.*\D)|^-?|\d+/g
Я думаю, что это должно работать так:
\D(?!.*\D) # match the last non-digit
| # or
^-? # match the start of the string with optional literal '-' character
| # or
\d+ # match digits
Но это не так:
var arrTest = '12,345,678.90'.match(/\D(?!.*\D)|^-?|\d+/g);
console.log(arrTest);
var test = arrTest.join('').replace(/[^\d-]/, '.');
console.log(test);
Тем не менее, при игре сPCRE(php)
-flavour онлайн вRegex101, Это работает, как я описал.
Я не знаю, думаю ли я, что это должно работать так, как это не работает. Или если есть какой-то шаблон, запрещенный в регулярном выражении javascript.