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