我想将以下正则表达式扩展到负数。
this.value = this.value.replace(/[^0-9\.]/g, "");
我尝试添加减号做这样的事情, (/[^-0-9.]/g, "") 但这允许在数字的任何地方输入减号。我想在数字的开头只允许出现一次减号。以后出现的减号应该被忽略。
请帮忙。
我想将以下正则表达式扩展到负数。
this.value = this.value.replace(/[^0-9\.]/g, "");
我尝试添加减号做这样的事情, (/[^-0-9.]/g, "") 但这允许在数字的任何地方输入减号。我想在数字的开头只允许出现一次减号。以后出现的减号应该被忽略。
请帮忙。
为什么选择正则表达式?怎么样:
var temp = parseFloat(this.value)
this.value = isNaN(temp) ? "" : temp;
这也应该有效:
var temp = +this.value;
this.value = isNaN(temp) ? "" : temp;
将破折号放在字符类之外:
this.value = this.value.replace(/^-?[^0-9\.]/g, "");
您提供的正则表达式对于正数本身是错误的,因为它将“100+200=300”转换为“100200300”。
我建议你试试这个: someString.match(/-?[\d]+.?[\d]*/);
只是把负号放在0前面
this.value = this.value.replace(/[^-0-9\.]/g, "");