2

文字コンマとドル記号をテストして削除する次の onkeyup コマンドがあります。

onkeyup="if (/(?:[a-zA-Z]|\s|,|\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"

ドル記号を除くすべてで機能します。

誰か助けてくれませんか?

ありがとう、ブルズ

4

2 に答える 2

3

任意の文字列を単なる数字にクリーンアップしようとしている場合は、数字ではないすべてのもの (整数が必要であると仮定) を空の文字列に置き換えることで、エッジ ケースを少なくします。

this.value = this.value.replace( /[^0-9]/, '' );
于 2012-05-29T16:19:21.770 に答える
3

HTMLはバックスラッシュを、正規表現ではなく、インライン HTML 文字列をエスケープするものとして解釈します。次のコードは$.

<body onload='alert("\$");'> // prints '$', not '\$'

2回エスケープするか、正規表現をインラインhtmlから関数に移動する必要があります。

正しい答えは、次のように に置き換えること\$だと思います。\\$

onkeyup="if (/(?:[a-zA-Z]|\s|,|\\$)+/ig.test(this.value)) this.value = this.value.replace(/(?:[a-zA-Z]|\s|,|\$)+/ig,'')"
于 2012-05-29T16:14:20.110 に答える