我写了以下正则表达式: /\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 regex-flavor 中不允许某些模式。