这个JavaScript正则表达式/ [^ \ d.-]是什么意思?

时间:2013-10-24 22:16:59

标签: javascript regex

我们在这里有一位开发人员,他将以下代码行添加到Web应用程序中:

var amount = newValue.replace(/[^\d.-]/g, '');

特定行处理用户可以在字段中输入的金额值。

我知道关于正则表达式的以下内容:

  1. 它用空字符串替换匹配(即删除它们)
  2. / g 是一个标志,表示匹配" newValue"
  3. 内的所有事件
  4. 括号 [] 表示特殊群组
  5. ^ 表示行的开头
  6. d 表示数字
  7. 不幸的是,我不太了解它应该匹配哪种字符串。我检查了一些基于网络的正则表达式测试人员是否匹配,例如像 98 .- 这样的字符串以及其他带数字的替代品,但到目前为止还没有运气。

    我的问题是它似乎使IE非常慢,所以我需要用其他东西替换它。

    对此有任何帮助将不胜感激。

    修改 感谢所有回复的人。我不仅尝试谷歌,还尝试了myregextester.com,regular-expressions.info,phpliveregex.com等网站。我的问题是误解了 ^ 的含义,并期望这需要一个像44.99这样的数字字符串。

2 个答案:

答案 0 :(得分:12)

在组内部,当^是第一个字符时,它作为字符匹配的否定。换句话说,它表示匹配任何不属于该组的角色。

所以这意味着“匹配任何不是数字,句号或连字符的东西”。

答案 1 :(得分:2)

^字符是否定字符。

var newValue = " x44x.-x ";
var amount = newValue.replace(/[^\d.-]/g, '');
console.log(amount);

将打印

44.-

我怀疑开发人员可能只想删除尾随空格?我宁愿尝试解析字符串中的数字并删除其他任何内容。