まる高
[E-Mail]
[HomePage]
1998/12/09(水) 09:32:30
前にもこんな質問がありましたね。
長いですけど、↓を使ってみてください。この位のコードを書かなければ対処できないと
思います。
/**********************************************************************
* 処理 :漢字判定のセット *
* true : " " 以上 *
**********************************************************************/
function JudgeKanji( Object ){
var Count ;
var String ;
String = Object.value ;
// Explorerの時、
if( navigator.appName == "Microsoft Internet Explorer" ){
return JudgeKanji_IE( String ) ;
}
// Netscapeの時、
else{
return JudgeKanji_Netscape( String ) ;
}
}
function JudgeKanji_IE( String ){
var Count ;
var Letter ;
for( Count=0; Count < String.length; Count++ ){
Letter = String.charAt( Count ) ;
if( Letter < " " && Letter != '\n' && Letter != '\r' )
return false ;
}
return true ;
}
function JudgeKanji_Netscape( String ){
var Count ;
var Letter ;
var kl ;
kl = Klength( String ) ;
for( Count=0; Count < kl; Count++){
Letter = KcharAt( String,Count );
if( Letter < " " && Letter != '\n' && Letter != '\r' )
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 ;
Length = 0 ;
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 ;
}