JavaScriptで半角カナを判断するには?
[上に]
[前に]
[次に]
PTAN
[E-Mail]
1998/06/04(木) 10:06:12
フォーム上のテキストボックスに半角カナが
入力された場合、JavaScriptで、エラーメッセ
ージを表示させるようにしたいのですが、可能
でしょうか?
まる高
[E-Mail]
[HomePage]
1998/06/04(木) 14:12:52
これで試してみてください。半角カタカナを入力するとFALSE、それ以外はTRUEのアラートを表示する例です。
NN4とIE3はOKでした。
NN、IEでどの文字を入れて動作するはずです、多分。
ちょっと、長いんですがコードを読んでください。
<HTML>
<HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
function JudgeLetter(){
var Answer ;
var String ;
String=document.test.InputArea.value ;
// Explorerの時、
if( navigator.appName == "Microsoft Internet Explorer" )
Answer=Judge_IE( String ) ;
// Netscapeの時、
else Answer=Judge_Netscape( String ) ;
alert("Result : "+Answer) ;
}
function Judge_IE( String ){
var Count ;
var Letter ;
for( Count=0; Count < String.length; Count++ ){
Letter = String.charAt( Count ) ;
if( Letter.length==1 && JudgeKatakana(Letter)==true )
return false ;
}
return true ;
}
function Judge_Netscape( String ){
var Count ;
var Letter ;
var kl ;
kl = Klength( String ) ;
for( Count=0; Count < kl; Count++){
Letter = KcharAt( String,Count );
if( Letter.length==1 &&JudgeKatakana(Letter)==true )
return false ;
}
return true ;
}
//文字列長取得
function Klength( String ){
var Count ;
var Length ;
var Letter, LetterBin ;
Length = 0 ;
for( Count=0; Count < String.length; Count++ ){
Letter = escape( String.charAt( Count ) ) ;
LetterBin = eval( "0x"+Letter.charAt( 1 ) ) ;
if ((LetterBin==8) || (LetterBin==9) || (LetterBin==14) || (LetterBin==15) ) Count++ ;
Length++ ;
}
return Length ;
}
//指定1文字取得(Shift JIS)
function KcharAt( String,Position ){
var Length ;
var Count ;
var CutString ;
var Letter, LetterBin ;
for( Count=0; Count < String.length; Count++ ){
CutString = String.charAt( Count ) ;
Letter = escape( CutString ) ;
LetterBin = eval( "0x"+Letter.charAt( 1 ) ) ;
if( (LetterBin==8) || (LetterBin==9) || (LetterBin==14) || (LetterBin==15) ){
CutString = CutString+String.charAt( Count+1 ) ;
Count++ ;
}
if( Position==Length ) break ;
Length++ ;
}
return CutString ;
}
function JudgeKatakana(Letter){
var CLetter;
var CLetterBin;
CLetter = escape(Letter) ;
CLetterBin = eval( "0x"+CLetter.charAt( 1 )+CLetter.charAt( 2 ) ) ;
if( CLetterBin > 0xA0 && CLetterBin < 0xE0 )
return true ;
else return false ;
}
//-->
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="test">
<INPUT TYPE="text" NAME="InputArea">
<INPUT TYPE="button" VALUE="実行" onClick="JudgeLetter()">
</BODY>
</HTML>
まる高
[E-Mail]
[HomePage]
1998/06/04(木) 14:16:47
上記の補足
漢字コードは、Shjft JISを対象としています。
IEとNNの漢字コードの解釈の違いを吸収しています。
PTAN
[E-Mail]
1998/06/04(木) 18:15:43
[[解決]]
ばっちりです...(^^)
どうもありがとうございました...m(_ _)m
[上に]
[前に]
[次に]