range と一致しないすべての文字を置き換える必要がありますa-zA-Z_-0-9
。だから私はそうしますval.replace(/[^a-zA-Z_-0-9]/g, '')
が、エラーが発生します。これどうやって噛むの?ありがとう
質問する
21727 次
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-z
a
z
_
0
あなたの場合、それをエスケープするだけです: \-
. これは-
文字として解析されます。
于 2012-08-27T13:24:35.730 に答える
4
于 2012-08-27T13:27:54.780 に答える
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 に答える