9

range と一致しないすべての文字を置き換える必要がありますa-zA-Z_-0-9。だから私はそうしますval.replace(/[^a-zA-Z_-0-9]/g, '')が、エラーが発生します。これどうやって噛むの?ありがとう

4

8 に答える 8

12

文字クラスにマイナス記号「-」を含めたい場合は、範囲の最後に配置する必要があります。

val.replace(/[^a-zA-Z_0-9-]/g, '')
于 2012-08-27T13:25:05.720 に答える
4

私はこの正規表現を好むでしょう:

val.replace(/[^\w-]+/gi, "");
于 2012-08-27T13:25:23.497 に答える
4

その文字はリテラルとして解析されることを期待して-いますが、実際には範囲として_-0解析_され0ます。ただし、は より上位の文字コードを持つため、エラーが発生します。a-zaz_0

あなたの場合、それをエスケープするだけです: \-. これは-文字として解析されます。

于 2012-08-27T13:24:35.730 に答える
2

これを試して:

val.replace(/[^a-zA-Z_0-9-]/g, '');
于 2012-08-27T13:25:18.507 に答える
2

「-」をエスケープする必要があります

val.replace(/[^a-zA-Z_\-0-9]/g, '')
于 2012-08-27T13:27:19.240 に答える
2

-不適切な範囲があります。その間と数値範囲を削除_し、最後または最初に配置してください。

于 2012-08-27T13:24:14.847 に答える
0
$(this).val($(this).val().replace(/[^a-zA-Z_0-9-]/g, ''));
于 2016-08-26T00:43:24.553 に答える