这只是对您的好问题的迟到回答!
您可以考虑给出一个带有开始左边界的字符列表,^然后根据需要从右侧放松它,然后从左向右滑动这些字符,这可能会传递任何类型的正数和负数,包括浮动,数字右侧也有任何内容。你可以用它关闭它,$它只允许数字。
可能类似于:
^([-+,0-9.]+)
此表达式将涵盖您的示例输入,但不适用于验证数字。
如果您希望验证数字,那么您可能希望为此类实例添加更多边界:
+-123
+-,123,12
0.000.000.1
-000,000.0001
+000,000,000,000.1
图形
此图显示了表达式的工作原理,您可以在此链接中可视化您的表达式:
repeat = 1000000;
start = Date.now();
for (var i = repeat; i >= 0; i--) {
var string = '-123,000,000.19 with anything else that you wish';
var regex = /^([-+,0-9.]+)(.*)/g;
var match = string.replace(regex, "$1");
}
end = Date.now() - start;
console.log("YAAAY! \"" + match + "\" is a match ");
console.log(end / 1000 + " is the runtime of " + repeat + " times benchmark test. ");