RegExp:为什么[^ 0-9-]!= [\ D-]?

bra*_*ick 2 javascript regex

我需要regexp删除所有不是数字而不是破折号(' - ').new RegExp('[^0-9-]')似乎有效,但new RegExp('[\\D-]')也删除破折号.为什么会有所不同?

Mar*_*c B 11

[^0-9-]是"任何不是数字,或者不是破折号"的任何东西,不是数字,或者是
[\D-]破折号

在^反转整个[]字符类,让你的\D版本,没有反转,因此-是合法的匹配.

  • 是不是`[\\ D-]`什么是``````D`或`-`?可能是问题中的拼写错误,或者他是从字符串文字中复制出来的.假设`\ D`,答案是正确的. (5认同)