htmlのinputに入力された内容が、日本語か英語か判別するにはどうすれば良いでしょうか?
※入力された内容の先頭で判断したいと思っています。
「take off」 → 英語
「テイクオフ」 → 日本語
「takeオフ」 → 英語
※送信先のCGIには手を加えないとします。
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の部分を変更すると、英数字も対応できたりいろいろできます。
先頭の文字がアルファベットかどうかを判断する関数を使ったサンプルコードを示します。
空のときも日本語と判断される(英語ではないため)ので、注意が必要です。
<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はダミーです。
コメント(0件)