ダッシュ('-')ではなく数字以外のすべてを削除するには正規表現が必要です。new RegExp('[^0-9-]')
動作するようですがnew RegExp('[\\D-]')
、ダッシュも削除してください。なぜこれが違うのですか?
質問する
1347 次
5 に答える
12
[^0-9-]
は「数字ではない、またはダッシュではない
[\D-]
もの」は「数字ではない、またはダッシュであるもの」です。
は文字クラス^
全体を反転するため、バージョンでは反転がないため、aは正当な一致です。[]
\D
-
于 2013-02-05T20:40:58.073 に答える
2
2番目のダッシュの前に否定がないためです。(\D
実際にはバックスラッシュは1つだけである必要があります)は「すべての数字ではない」を意味し、ダッシュはダッシュを意味します。
于 2013-02-05T20:41:14.513 に答える
2
2番目の正規表現の意味を間違って解釈したためです。
文字クラスの^
先頭にある は、そのクラス[^0-9-]
で指定されたすべての文字に一致し0-9
ます-
。一方[\D-]
、数字ではなく . であるすべてのものに一致し-
ます。
于 2013-02-05T20:42:42.497 に答える
2
^
文字クラス ( ) でを使用すると、 []
「このクラスには何もない」という意味になります。 \D
「数字ではないもの」を意味する特別なシーケンスです。
そう:
[^0-9-]
数字または . 以外のものに一致し-
ます。
[\D-]
は、「任意の非数字文字 (または、-
既に非数字である ) を意味します。[]
ここでは、必要はありません。これは、それ自体と同じ\D
です。
于 2013-02-05T20:49:21.730 に答える
0
\D
の単純な省略形です^0-9
于 2013-02-05T20:41:16.273 に答える