将正则表达式扩展为负数

use*_*884 2 javascript regex jquery

我想将以下正则表达式扩展为负数.

this.value = this.value.replace(/[^0-9\.]/g, "");
Run Code Online (Sandbox Code Playgroud)

我尝试添加减号做这样的事情,(/[^-0-9.]/g,""),但是这允许在任何地方数输入减号.我想只允许在数字的开头出现一个减号.后来发生的减去应该被忽略.

请帮忙.

Ber*_*rgi 7

呃,取代每个非数字字符会让事情变得更难 - 就像"否定"正则表达式一样.我想出的是一个负向前瞻,[^0-9.]如果它在字符串的开头(使用起始锚点),则防止减去 - 这将与匹配- 匹配.

….replace(/(?!^-)[^0-9.]/g, "")
Run Code Online (Sandbox Code Playgroud)