ユーザーが特殊文字をフィールドに入力できないようにする次の JavaScript がありますが、例外を作成してダッシュ (-) を許可したいと考えています。
function Validate(txt)
{
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
}
ダッシュを許可リストに追加するように変更するにはどうすればよいですか?
ユーザーが特殊文字をフィールドに入力できないようにする次の JavaScript がありますが、例外を作成してダッシュ (-) を許可したいと考えています。
function Validate(txt)
{
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
}
ダッシュを許可リストに追加するように変更するにはどうすればよいですか?
ダッシュ ( ) を許可するには、 this:を this:-
に変更するだけです。txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r]+/g, '');
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
ダッシュは、角括弧で囲まれた場合 (範囲を示す) 特殊文字であるため、角括弧内の最後に配置する必要があることに注意してください。
@Tim Pietzckerのコメントに従って、エスケープするtxt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r\-]+/g, '');
か、先頭に置くこともできますtxt.value = txt.value.replace(/[^-a-zA-Z 0-9\n\r]+/g, '');
。
文字クラスの最後に (最後の文字として) ダッシュを追加します。
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
これを試してください: [^a-zA-Z 0-9\n\r-]+
txt.value = txt.value.replace(/[^a-zA-Z 0-9\n\r-]+/g, '');
ダッシュが最後にない場合は、これを試すこともできます
[^a-zA-Z 0-9\n\-\r]+ //I only test this on rubular