【トラブル】正規表現で入力可能文字チェックした際に入力不可能文字「カンマ」が入力できてしまう

エラー内容

http://blogs.yahoo.co.jp/dk521123/34640242.html
で行った方法で、以下のサンプルを作成したが、
正規表現で入力可能文字「半角英数と#$%&+-/*.\|のみ」チェックした際に
入力不可能文字「カンマ」が入力できてしまう。

サンプル

「,」(カンマ) は禁止文字なのだが入力できる(「OK」が表示される)
<html>
<head>
<script language="Javascript">
function sampleRegularExpression () {
  if (frm.txt.value.match(/[^a-zA-Z0-9#$%&+-/*.\\|]/)) {
    // 禁止文字が入力された
    document.getElementById ('result').innerHTML = '<p>NG...</p>';
  } else {
    // OK
    document.getElementById ('result').innerHTML = '<p>OK</p>';
  }
}
</script>
</head>
<body>
<form name="frm">
<input type="text" name="txt">
<input type="button" name="btn" value="半角英数と#$%&+-/*.\|のみ" onclick="sampleRegularExpression()">
</form>
<p id="result">Result</p>
</body>
</html>

対応策

 * 「ハイフン(-)」をエスケープする

対応後のサンプル

* 「ハイフン(-)」の前に「\」を付与し、エスケープしている
<html>
<head>
<script language="Javascript">
function sampleRegularExpression () {
  if (frm.txt.value.match(/[^a-zA-Z0-9#$%&+\-/*.\\|]/)) { <!-- ★修正個所★ -->
    // 禁止文字が入力された
    document.getElementById ('result').innerHTML = '<p>NG...</p>';
  } else {
    // OK
    document.getElementById ('result').innerHTML = '<p>OK</p>';
  }
}
</script>
</head>
<body>
<form name="frm">
<input type="text" name="txt">
<input type="button" name="btn" value="半角英数と#$%&+-/*.\|のみ" onclick="sampleRegularExpression()">
</form>
<p id="result">Result</p>
</body>
</html>