我们在这里有一位开发人员,他将以下代码行添加到Web应用程序中:
var amount = newValue.replace(/[^\d.-]/g, '');
特定行处理用户可以在字段中输入的金额值。
我知道关于正则表达式的以下内容:
不幸的是,我不太了解它应该匹配哪种字符串。我检查了一些基于网络的正则表达式测试人员是否匹配,例如像 98 .- 这样的字符串以及其他带数字的替代品,但到目前为止还没有运气。
我的问题是它似乎使IE非常慢,所以我需要用其他东西替换它。
对此有任何帮助将不胜感激。
修改 感谢所有回复的人。我不仅尝试谷歌,还尝试了myregextester.com,regular-expressions.info,phpliveregex.com等网站。我的问题是误解了 ^ 的含义,并期望这需要一个像44.99这样的数字字符串。
答案 0 :(得分:12)
在组内部,当^
是第一个字符时,它作为字符匹配的否定。换句话说,它表示匹配任何不属于该组的角色。
所以这意味着“匹配任何不是数字,句号或连字符的东西”。
答案 1 :(得分:2)
^字符是否定字符。
var newValue = " x44x.-x ";
var amount = newValue.replace(/[^\d.-]/g, '');
console.log(amount);
将打印
44.-
我怀疑开发人员可能只想删除尾随空格?我宁愿尝试解析字符串中的数字并删除其他任何内容。