$.validator.addMethod('AZ09_', function (value) {
return /^[a-zA-Z0-9.-_]+$/.test(value);
}, 'Only letters, numbers, and _-. are allowed');
test-123
のようなものを使用すると、ハイフンが無効であるかのようにトリガーされます。 \-
と--
を試しました
\-
を使用したエスケープは問題ありませんが、文字クラスの先頭または末尾に配置することもできます。これはあなたのために働くはずです:
/^[a-zA-Z0-9._-]+$/
\-
は-
文字範囲内。テストしたように見えなかったときに引用できますか?動作しているようだから: http://jsbin.com/odita
サーバーから文字列全体を渡したため、\-はおそらく機能していませんでした。その場合は、最初に\をエスケープして、サーバー側プログラムでも処理できるようにする必要があります。
または、[]と[]の括弧に単に置くことができます。
ハイフンを一致させるより一般的な方法は、ハイフンとダッシュの文字クラスを使用することです(引用符なしの「\ p {Pd}」)。さまざまな文化やソースのテキストを扱っている場合、1文字だけでなく、より多くの種類のハイフンが出回っていることがあります。 []式内に追加できます