Japanese Zenkaku
★ Issue1 <SCRIPT LANGUAGE="javascript"> <!--// /** * 全角であるかをチェックします。 * * @param チェックする値 * @return ture : 全角 / flase : 全角以外 */ function checkIsZenkaku(value){ for (var i = 0; i < value.length; ++i){ var c = value.charCodeAt(i); // 半角カタカナは不許可 if (c < 256 || (c >= 0xff61 && c <= 0xff9f)){ return false; } } return true; } function check() { if (checkIsZenkaku(document.all.textbox.value)) { alert("指定の文字全ては全角です"); } else { alert("指定の文字に全角以外の文字が含まれています"); } } //--> </SCRIPT> ★ Issue2 <script language="javascript"> <!--// /** JavaScript 入力文字列内に全角文字が含まれていたら警告する **/ function Check(){ var str = document.all.textbox.value; for(i=0;i<str.length;i++){ if(escape(str.charAt(i)).length>=4){ alert("全角文字が含まれています"); document.frmForm.txtText.value = ""; return; } } alert("全角文字は含まれていません"); } //--> </script> <INPUT TYPE="text" NAME="textbox" STYLE="ime-mode:disabled" > ★ Issue3 全角文字、あるいは半角文字が含まれているかチェックする 文字のバイト数をカウントするスクリプトの応用です。 文字列を1文字ずつチェックし、全角(半角)文字の場合そこで処理を中止し、true(真)を返します。 1文字も含まれていない場合は、false(偽)を返します。 1./**************************************************************** 2.* 全角/半角文字判定 3.* 4.* 引数 : str チェックする文字列 5.* flg 0:半角文字、1:全角文字 6.* 戻り値: true:含まれている、false:含まれていない 7.* 8.****************************************************************/ 9.function CheckLength(str,flg) { 10. for (var i = 0; i < str.length; i++) { 11. var c = str.charCodeAt(i); 12. // Shift_JIS: 0x0 ~ 0x80, 0xa0 , 0xa1 ~ 0xdf , 0xfd ~ 0xff 13. // Unicode : 0x0 ~ 0x80, 0xf8f0, 0xff61 ~ 0xff9f, 0xf8f1 ~ 0xf8f3 14. if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) { 15. if(!flg) return true; 16. } else { 17. if(flg) return true; 18. } 19. } 20. return false; 21.} ★ Issue4 <html> <head> <SCRIPT language='JavaScript'> <!----- //半角カナをチェックします function Form_Validator(theForm) { var disp = ""; var text =theForm.text1.value; var len = text.length; var ret = true; var flg = true; var str = ""; for ( i = 0 ; i < len ; i++ ) { str = text.substring(i, i+1); ret = isHankaku(str); if (ret){ disp += "「" + str + "」"; flg = false; } } if(!flg){ alert(disp + "は半角カナです。\n"); theForm.text1.focus(); return(false); }else{ alert("半角カナは含まれていません。"); return(false); } } function isHankaku(str) { var esc_str = escape(str); var ms = navigator.appVersion.indexOf("MSIE"); var nesc = navigator.appName.lastIndexOf("Netscape"); //一致した位置(0)を返す if(nesc >= 0){ if ( (esc_str.indexOf('%A') == 0) || (esc_str.indexOf('%B') == 0) || (esc_str.indexOf('%C') == 0) || (esc_str.indexOf('%D') == 0) ){ return(true); } }else if(ms > 0){ if((esc_str.indexOf('%uFF6') == 0) || (esc_str.indexOf('%uFF7') == 0) || (esc_str.indexOf('%uFF8') == 0) || (esc_str.indexOf('%uFF9') == 0) ) { return(true); } } return(false); } //-----> </script> </head> <body> <form name="form1" method="GET" onsubmit="return Form_Validator(this);"> <input type="text" name="text1" size="20"> <input type="submit" value="チェックする"> </form> </body> </html> ★ Issue5 //全角チェック public static boolean isFullWord(String i_strContents) { boolean value = true; byte[] byteArray = null; byteArray = i_strContents.getBytes(); for(int i = 0; i < byteArray.length; i++) { if((byteArray[i] >= (byte)0x81 && byteArray[i] <= (byte)0x9f) || (byteArray[i] >= (byte)0xe0 && byteArray[i] <= (byte)0xef)) { if((byteArray[i+1] >= (byte)0x40 && byteArray[i+1] <= (byte)0x7e) || (byteArray[i+1] >= (byte)0x80 && byteArray[i+1] <= (byte)0xfc)) { i++; } else { value = false; } } else { value = false; } } return value; } //半角チェック public static boolean isHalfWord(String i_strContents) { boolean value = true; byte[] byteArray = null; byteArray = i_strContents.getBytes(); for(int i = 0; i < byteArray.length; i++){ if((byteArray[i] >= (byte)0x81 && byteArray[i] <= (byte)0x9f) || (byteArray[i] >= (byte)0xe0 && byteArray[i] <= (byte)0xef)) { if((byteArray[i+1] >= (byte)0x40 && byteArray[i+1] <= (byte)0x7e) || (byteArray[i+1] >= (byte)0x80 && byteArray[i+1] <= (byte)0xfc)) { value = true; } } } return value; } //名前の全角を検査します。 public static boolean checkNameFormat(String i_strContents) { boolean bResult = (!i_strContents.equals("")&&Validation.isFullWord(i_strContents)); return bResult; } //点数と人数の半角を検査します public static boolean checkPointFormat(String i_strContents) { boolean bResult = true; int iContents; //半角の時 if(!i_strContents.equals("")&&!Validation.isFullWord(i_strContents)) { iContents = Integer.parseInt(i_strContents); //0点から100点以内 if((iContents < 0) || (iContents > 100)) { bResult = false; } } else { bResult = false; } return bResult; } ★ Issue6 function checkhalf(str){ str = str; chkstr = escape(str.value); if (chkstr.indexOf('%') != -1){ alert('入力は半角英数字でお願いします。'); str.value = ""; str.focus(); } } |
Posted in jQuery, Javascript