人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

javascriptで。

htmlのinputに入力された内容が、日本語か英語か判別するにはどうすれば良いでしょうか?

※入力された内容の先頭で判断したいと思っています。
「take off」→ 英語
「テイクオフ」→ 日本語
「takeオフ」→ 英語

※送信先のCGIには手を加えないとします。

●質問者: tetlis
●カテゴリ:インターネット ウェブ制作
✍キーワード:CGI HTML JavaScript TAKE TAKE OFF
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● 牛乳先生(tukihatu)
●35ポイント

javascriptでやるなら、フォーム送信の前に一度かませる必要があります。

先頭を判別するならsubstr(0.1)もしくは正規表現の先頭から判別を使います。

英語かどうかを判定するのは正規表現を使います。

簡単に組み合わせるとこうなります。

<script>
function submitcheck(){
 strcheck("input01");
}

function strcheck(inputid){
 var sid = document.getElementById(inputid);
 if(sid.match(/^[a-z]/i)){alert("英語!");document.getElementById("formname").submit();}
 else{alert("日本語!");}
}

</script>
</head><body>
<form id="formname" action="?.cgi">
<input type="text" id="input01" />
<input type="button" onclick="submitcheck();" />
</form>

即興で書いたから動作確認はしてませんが、流れはこんな感じです。

matchの部分を変更すると、英数字も対応できたりいろいろできます。

http://www.tohoho-web.com/js/regexp.htm


2 ● Numeric
●35ポイント

先頭の文字がアルファベットかどうかを判断する関数を使ったサンプルコードを示します。

空のときも日本語と判断される(英語ではないため)ので、注意が必要です。

<script type='text/javascript'>
function isAlphabet(str){
var exp = /^[a-zA-Z]/;
if(str.charAt(0).match(exp)){
return true;
}else{
return false;
}
}

// sample
function sampleFunction(text){
document.write("「" + text + "」 → " + (isAlphabet(text) ? "英語" : "日本語") + "<br/>");
}

sampleFunction("take off");
sampleFunction("テイクオフ");
sampleFunction("takeオフ");
</script>

URLはダミーです。

http://q.hatena.ne.jp/answer

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ