0

数字と-. ユーザーが数字でもハイフン/ダッシュでもないものを入力するたびに、それを削除する必要があります。私は正規表現を持ってい[0-9\-]ますが、うまくいきません。私はそれが間違っていることを知っていますが、私はこれに本当に慣れていません。

http://jsfiddle.net/nqdjZ/を参照してください。

助けてください。

4

3 に答える 3

2

まずnew RegExp、文字列が必要です。/[0-9-]/代わりにリテラルを使用する必要があります。次の問題は、replaceそこにあってはならないことです。もう 1 つの問題は、テキストが入力されている場所を完全に確認できないことです。テキストが最後にあると想定しないでください。それは人々をひどく悩ませるでしょう。

<input type="number">代わりに使用し、誰かが入力している間ではなく、最後に検証します。

于 2013-01-08T04:50:59.893 に答える
1

この正規表現を試してください:

[^\d\-]+

null文字列に置き換えます。

説明:

[^character_group] 否定:にない単一の文字に一致しcharacter_groupます。

\d 任意の10進数に一致します。

+ 前の要素と1回以上一致します。

\- 一致する-

とあなたのコード:

result = inputString.replace(/[^\d\-]+/g, "");
于 2013-01-08T05:04:02.140 に答える
1

正規表現を変更 -

var pattern = new RegExp("^([0-9_\\-]+)$");
于 2013-01-08T05:11:19.817 に答える