出来るのだASP Q&A掲示板(過去LOG)  訪問数 52046 昨日 889 今日 776
    【PR】 パソコン入門からIT専門書まで幅広く取り揃えています。セブン-イレブン受取り手数料無料のセブンアンドワイ。
Topに戻る 掲示板に戻る 検索 削除 管理者

入力不可能文字の判定   ASP初心者さん [2005/03/17 15:47:36] [4955]
  Re:入力不可能文字の判定   ryuさん [2005/03/17 16:06:33] [4956]
    Re:入力不可能文字の判定   ASP初心者さん [2005/03/17 17:53:27] [4957]
      Re:入力不可能文字の判定   ryuさん [2005/03/18 9:20:45] [4959]
  Re:入力不可能文字の判定   Lightningさん [2005/03/20 17:53:50] [4960]

[4955] 入力不可能文字の判定
投稿者:ASP初心者さん 2005/03/17 15:47:36
お世話になります。

先日はありがとうございました。
あれから、試行錯誤しながら進めていますが、
あと1カ所のところで困っております。

やりたい事は、以下になります。

例1:ひらがなでの入力を必須とする
→「ふりがな」のように、ひらがなで入力されたもの以外はエラーを返す

例2:数字での入力を必須とする
→電話番号のように、数字で入力されたもの以外はエラーとする

この場合の判定は、どのように行えばいいのでしょうか。

ご指導宜しくお願いいたします。

[4956] Re:入力不可能文字の判定
投稿者:ryuさん 2005/03/17 16:06:33
どもです。

入力不可文字の判定は、クライアント側で行なうので良いのですよね?
テキストボックスを使用されているのであれば、テキストボックスからフォーカスが外れた際に文字判定を行なう事ができます。

例えば(半角の数字以外はエラーにする場合)、、、

<INPUT TYPE="text" name="AAA" onBlur="_onBlur(this)">

--JS部分--
function _onBlur(obj){
 var str = obj.value;
 if( str == "" ) return true;//何も入力していなければエラーに引っかからないように設定してます。
 if(obj.name == "AAA")
 {
  if(str !== "")
  {//↑入力文字があるかの判定
   if(isNaN(num = str))
   {//↑入力文字がナンバー型かの判定
    alert("半角数字で記入してください");//ナンバー型じゃない場合
    obj.focus();//
   }
   return false;//ナンバー型じゃなければフォーカスをはずさない(AAAのテキストボックスから出られない)
  }
 }
}

といった事はできますよ。

あとは、必要に応じて、ひらがなの時とか半角全角の判定とかで、条件を変えれば良いと思います。

> お世話になります。
>
> 先日はありがとうございました。
> あれから、試行錯誤しながら進めていますが、
> あと1カ所のところで困っております。
>
> やりたい事は、以下になります。
>
> 例1:ひらがなでの入力を必須とする
> →「ふりがな」のように、ひらがなで入力されたもの以外はエラーを返す
>
> 例2:数字での入力を必須とする
> →電話番号のように、数字で入力されたもの以外はエラーとする
>
> この場合の判定は、どのように行えばいいのでしょうか。
>
> ご指導宜しくお願いいたします。

[4957] Re:入力不可能文字の判定
投稿者:ASP初心者さん 2005/03/17 17:53:27
お世話になります。

すみません、説明不足でした。
入力不可文字の判定は、サーバ側で行います。
(error.aspという形で作って、まとめてそちらで表示します)

で、判定はJavaScriptを使わずにASPで判定、との事です。

宜しくお願い申し上げます。

> どもです。
>
> 入力不可文字の判定は、クライアント側で行なうので良いのですよね?
> テキストボックスを使用されているのであれば、テキストボックスからフォーカスが外れた際に文字判定を行なう事ができます。
>
> 例えば(半角の数字以外はエラーにする場合)、、、
>
> <INPUT TYPE="text" name="AAA" onBlur="_onBlur(this)">
>
> --JS部分--
> function _onBlur(obj){
>  var str = obj.value;
>  if( str == "" ) return true;//何も入力していなければエラーに引っかからないように設定してます。
>  if(obj.name == "AAA")
>  {
>   if(str !== "")
>   {//↑入力文字があるかの判定
>    if(isNaN(num = str))
>    {//↑入力文字がナンバー型かの判定
>     alert("半角数字で記入してください");//ナンバー型じゃない場合
>     obj.focus();//
>    }
>    return false;//ナンバー型じゃなければフォーカスをはずさない(AAAのテキストボックスから出られない)
>   }
>  }
> }
>
> といった事はできますよ。
>
> あとは、必要に応じて、ひらがなの時とか半角全角の判定とかで、条件を変えれば良いと思います。
>

[4959] Re:入力不可能文字の判定
投稿者:ryuさん 2005/03/18 9:20:45
あう、、、↑に書いたのはASPの中にJSを埋め込んだものなのですが、、、、(自分の説明の仕方が悪かったかも)

詳しく書いちゃうと、以下のように記述しているのですが、、、
(以下AAA.aspの中にまとめて記述してます・・・クライアントに表示される画面もAAA.aspです)

<%@ Language=VBSCRIPT%>
<%

%>
<html>
<head>
<TITLE>AAA.asp</TITLE>
<SCRIPT language="JavaScript">
<!--
/*テキストボックスに入った文字列のチェック*/
function _onBlur(obj)
{
 var str = obj.value;
 if( str == "" ) return true;//何も入力していなければエラーに引っかからないように設定してます。
 {
  if(obj.name == "AAA")
  {
   if(str !== "")
   {//↑入力文字があるかの判定
    if(isNaN(num = str))
    {//↑入力文字がナンバー型かの判定
     alert("半角数字で記入してください");//ナンバー型じゃない場合
     obj.focus();//
    }
    return false;//ナンバー型じゃなければフォーカスをはずさない(AAAのテキストボックスから出られない)
   }
  }
 }
}
//-->
</SCRIPT>
</head>
<BODY>
<INPUT TYPE="text" name="AAA" onBlur="_onBlur(this)">
</BODY>
</html>

これで、AAAというテキストに数字以外が放り込まれたのでalert出して警告させています。

というように、ASPにJS部を埋め込んでいるのです。
これではダメなんでしょうか?



う〜ん、サーバー側ってことは、判定せずに、一度取り込んでしまうという事なのかな???
変数か何かにもたせて、取り込んでから、文字を調べて、エラーなら、、、元の画面に戻す、、、とか、、、エラー専用の画面を表示させる、、、とかでしょうか?

[4960] Re:入力不可能文字の判定
投稿者:Lightningさん 2005/03/20 17:53:50
> 例1:ひらがなでの入力を必須とする
> →「ふりがな」のように、ひらがなで入力されたもの以外はエラーを返す
一文字づつに分解してアスキーコードで調べるとかかな、あとは正規表現が使える・・・といいなあ。
BASPなんかを使って[ぁ-ん]*でひらがなが引っ張れそう。
ということはこれ以外がヒットすればアウトにすればいいわけで・・・
ちょっと調べたら
http://www.atmarkit.co.jp/fdotnet/dotnettips/054iskana/iskana.html
こんなことも書いてありました

> 例2:数字での入力を必須とする
> →電話番号のように、数字で入力されたもの以外はエラーとする
数字の判定はisNumericあたりを使ってください。
問題はマイナスが通ることと、電話番号の場合は0120-05や(0120)のような書き方をする方がいる可能性を排除するか、対応する必要がありますね。



TreeBBS For ASP V.0.1.3
Program By YasNet