フォームのテキストボックスに入力された文字が、全角か半角かをチェックする方法ご存知の方居ましたら。教えて下さい。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

 基本は1文字ずつ切り出してescape関数に渡し、元の値とescape後の値が等しければ半角、異なれば全角ということになります。


 ただし、ブラウザやバージョンによってエンコード方法が異なったり、2バイトコードの数え方が違ったりするので、確実性を求めるなら、ブラウザ/バージョンごとに処理を書いた方がよいでしょう。

参考URL:http://tohoho.wakusei.ne.jp/js/builtin.htm#escap …
    • good
    • 0
この回答へのお礼

大変参考になりました。
ありがとうございました。

お礼日時:2001/10/25 09:03

Java ではないのですが、参考に


Microsoft の開発環境の場合を書きます。

テキストを一旦Asciiコードに変換
してから、文字数とバイト数を比較
します。違っていれば全角が混じって
いると判定します。
これならUnicodeであっても対応できます。

同じ機能の関数がJavascriptにあるかどうか
は分かりません。
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2001/10/25 09:03

charAt()等を使って一文字ずつチェックするしかないのではないでしょうか?


URLのソースはバイト数で半角全角を分けていますが、
文字コードで判別する方法もあるかと。

参考URL:http://tohoho.wakusei.ne.jp/lng/199806/98060010. …
    • good
    • 0
この回答へのお礼

参考になりました。

ありがとうございます。

お礼日時:2001/10/25 09:05

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q半角カナを全角カナに変換したい

表題の通りです。
先輩から引き継いだエクセルのデータが、全角カナと半角カナとの両方を、使い分けなどではなく使用しているものだったので、半角カナを全部、全角カナに変換したいと考えています。
置換機能で50音全部を置換するのは大変ですので、一度に変換する良い方法があれば教えてください。
また、全角アルファベットを、普通の英字(半角アルファベット?)にも変換したいと思っています。

Aベストアンサー

=JIS(セル番地)
で全角に
=ASC(セル番地)
で半角になります。

Qテキストエリア入力文字数の表示で全角と半角を区別したいです。

JavaScriptで以下のようにテキストエリアで入力文字数を表示させているのですが、
全角文字も半角文字も同じ1文字としてカウントされてしまいます。
入力された文字が全角なら2、半角なら1としてカウントするように出来ないでしょうか?
================================================================
/*テキスト入力フォームで文字数を表示する*/
function ShowLength( str ) {
document.getElementById("inputlength").innerHTML = str.length + "文字";
}
----------------------------------------------------------------
<textarea cols="70" rows="10" onkeyup="ShowLength(value);" /></textarea>
<p id="inputlength">0文字</p>
================================================================
宜しくお願い致します。

JavaScriptで以下のようにテキストエリアで入力文字数を表示させているのですが、
全角文字も半角文字も同じ1文字としてカウントされてしまいます。
入力された文字が全角なら2、半角なら1としてカウントするように出来ないでしょうか?
================================================================
/*テキスト入力フォームで文字数を表示する*/
function ShowLength( str ) {
document.getElementById("inputlength").innerHTML = str.length + "文字";
}
--------------------------...続きを読む

Aベストアンサー

こんにちは

文字数ではなくてバイト数で取ってみては?

<script type="text/javascript"><!--
function ShowLength( str ) {
len = 0;
for(i=0;i<str.length;i++) {
var c = str.charCodeAt(i);
if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)){
len += 1;
}
else { len += 2; }
}
document.getElementById("inputlength").innerHTML = len + "文字";
}
//--></script>

<textarea cols="70" rows="10" onkeyup="ShowLength(this.value);" /></textarea>
<p id="inputlength">0文字</p>

もしくはmatchを使うとか

function ShowLength( str ) {
len = 0;
for(i=0;i<str.length;i++) {
STR = str.charAt(i);
if(STR.match(/\w/)) { len += 1; }
else { len += 2; }
}
document.getElementById("inputlength").innerHTML = len + "文字";
}

こんにちは

文字数ではなくてバイト数で取ってみては?

<script type="text/javascript"><!--
function ShowLength( str ) {
len = 0;
for(i=0;i<str.length;i++) {
var c = str.charCodeAt(i);
if ( (c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)){
len += 1;
}
else { len += 2; }
}
document.getElementById("inputlength").innerHTML = len + "文字";
}
//--></script>

<textarea cols="70" rows="10" onkeyup="ShowLength(t...続きを読む

Q全角半角変換 C++/CLI

C++/CLI(VC++2008) で
(1)たとえば 東京bay を 東京bay にという風に全角半角混在の文字列のなかの半角文字を全角文字に変換するにはどうすればよろしいでしょうか
(2)全角半角混在の文字列のなかの全角文字を半角文字に変換するにはどうすればよろしいでしょうか
 

Aベストアンサー

1. VBのStrConvを使う。

#using "Microsoft.VisualBasic.dll"
using namespace Microsoft::VisualBasic;

String^ s1 = L"東京bay";
// 全角文字へ
String^ s2 = Strings::StrConv(s1, VbStrConv::Wide, 0);
// 半角文字へ
String^ s3 = Strings::StrConv(s2, VbStrConv::Narrow, 0);


2. Win32 API LCMapStringを使う。

#include "windows.h"
#include "vcclr.h"
#pragma comment(lib, "kernel32.lib")

String^ s1 = L"東京bay";
pin_ptr<const wchar_t> p1 = PtrToStringChars(s1);

array<wchar_t>^ b2 = gcnew array<wchar_t>(s1->Length + 1);
pin_ptr<wchar_t> p2 = &b2[0];
::LCMapStringW(LOCALE_USER_DEFAULT, LCMAP_FULLWIDTH, p1, -1, p2, b2->Length);
String^ s2 = gcnew String(p2);

array<wchar_t>^ b3 = gcnew array<wchar_t>(s1->Length + 1);
pin_ptr<wchar_t> p3 = &b3[0];
::LCMapStringW(LOCALE_USER_DEFAULT, LCMAP_HALFWIDTH, p2, -1, p3, b3->Length);
String^ s3 = gcnew String(p3);

1. VBのStrConvを使う。

#using "Microsoft.VisualBasic.dll"
using namespace Microsoft::VisualBasic;

String^ s1 = L"東京bay";
// 全角文字へ
String^ s2 = Strings::StrConv(s1, VbStrConv::Wide, 0);
// 半角文字へ
String^ s3 = Strings::StrConv(s2, VbStrConv::Narrow, 0);


2. Win32 API LCMapStringを使う。

#include "windows.h"
#include "vcclr.h"
#pragma comment(lib, "kernel32.lib")

String^ s1 = L"東京bay";
pin_ptr<const wchar_t> p1 = PtrToStringChars(s1);

a...続きを読む

Q全角文字を半角にすると全角の”と’が変換されない理由と対策を!?

String.prototype.toAscii = function(){
return this.replace(/([!-~ ])/g,
function (char){return String.fromCharCode(char.charCodeAt(0) - 65248)} );
}
タイトル通りです。全角の「”」と「’」が半角文字に変換されません。
その理由と対策を教えていただけますか?
それと、根本的にこんなやりかたは、だめなのでしょうか?

Aベストアンサー

対策:
知らん。
#元々僕はそういう変換噛ます事に抵抗感ある人間なのでできることならやらないでほしいと思っている

原因:
http://en.wikipedia.org/wiki/Halfwidth_and_Fullwidth_Forms
"はU+FF02 FULLWIDTH QUOTATION MARK
”はU+201D RIGHT DOUBLE QUOTATION MARK

Qワードで数字の全角を半角に(カタカナは全角のままで)変換するには?

ワードに100ページの文章があります。全角数字が散在しています。全角数字を半角に直したく、半角操作をかけるとカタカナも半角に変換されてしまいます。数字だけ変換されるようにするには、どのようにしたらいいのでしょうか。ワードの、書式メニュー→文字種の変換→半角、で操作をおこないました。

Aベストアンサー

メニューの[編集]→[検索]又は[Ctrl+F]で検索タブが開きます。

[検索する文字列]に[0-9]
(0、9、は全角。[ ]、-、は半角)

[見つかったすべての項目を強調表示する]にチェックを入れます。

[オプション]ボタンを押し[検索オプション]が開きます。
[ワイルドカードを使用する]にチェックを入れると[あいまい検索]のチェックが外れます。

[すべて検索]ボタンを押して、文書の中の全角数字の全てが選択状態になったら、
メニューの[書式]→[文字種の変換]→[半角]を選択します。

Qフォームのチェックボックスの入力チェック JavaScriptの添削依

フォームのチェックボックスの入力チェック JavaScriptの添削依頼

フォーム制作しています。
複数選択可能なチェックボックスの入力チェックを行いたいのですが、
動かず困っています。
JavaScriptの添削をお願いします。
他のチェック項目との兼ね合いもあり、
JavaScriptはform.jsに記載したいこと、
チェックボックスが未選択の場合は、flag に 1 を入れること、
チェックボックスの数が多いため、それぞれ違う name を振る方法は避けたいこと、
が制作の条件になっています。

■index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
</head>

<html>
<head>

<!-- *** javascript *** -->
<script src="form.js" type="text/javascript" charset="utf-8"></script>

</head>
<body bgcolor="#ffffff">
フォームの入力で未入力のチェックを行います。

<form method="post" onSubmit="return chkform()" name="form1">

<input type="checkbox" name="chk[]" value="OK">OK
<input type="checkbox" name="chk[]" value="NG">NG
<input type="checkbox" name="chk[]" value="GOOD">GOOD
<br>
<br>
<input type=submit value=" 送信 ">
<input type=reset value=" 取消 ">

</form>

</body>
</html>

■form.js
function chkform() {

var flag = 1;
var list=document.getElementsByName(chk);

for(var i=0;i<list.length;i++){
if(list[i].checked){
flag = 0; break;
}
}

if(flag == 1){
window.alert('チェックボックスが未選択です'); // 入力漏れがあれば警告ダイアログを表示
return false; // 送信を中止
}
else {
return true ;
}

}

フォームのチェックボックスの入力チェック JavaScriptの添削依頼

フォーム制作しています。
複数選択可能なチェックボックスの入力チェックを行いたいのですが、
動かず困っています。
JavaScriptの添削をお願いします。
他のチェック項目との兼ね合いもあり、
JavaScriptはform.jsに記載したいこと、
チェックボックスが未選択の場合は、flag に 1 を入れること、
チェックボックスの数が多いため、それぞれ違う name を振る方法は避けたいこと、
が制作の条件になっています。

■index.html
<!DOCTYPE html P...続きを読む

Aベストアンサー

名前が間違っとる
>> document.getElementsByName(chk);
document.getElementsByName('chk[]');

# 文書全体を検索する理由ってなんだろ。


どうでもいいけど、XHTML でないものを XHTML として渡している理由が良く分からない。
どうせメディアタイプが text/html になってるだろうから、別にいいんだけどね。

Qキーボードでの「英数(全角/半角)」変換

 言語変換関係の質問は、「言語バー」「キーボード」関係で、多数あるのですが、どれが自分の探している症状なのか分からないので、新しく質問します。
 PCはSOTECのWV2150Cで、OSはWindowsXPで、ローマ字入力しています。
 キーボードによる、「英字和字」変換と、「英字の全角・半角」変換が、自分の意図しない変換に、どういうわけか、時々変わってしまいます。言語バーをマウスでクリックするのは面倒なので、キーボードで操作したいのですが、それが、コントロール不能になってしまうわけです。
 具体的には、まず「英字の全角」と「和字の全角」の相互変換ですが、うまくいっているときは、通常和字にしているときキーボードの「英数・CapsLock」を押すだけで「英字全角」に変換できます。また押せば、元に戻せます。しかし、何かの拍子で、このキーを押すと、「英字の半角」になってしまい、どうしても「英字の全角」になりません。しかし、時間が経って、いつのまにか、相互変換できるように戻っていることもしばしばです。
 「英字の半角」はキーボード上部の「半角/全角」キーで「英字半角」と「和字全角」とが相互変換できるので、「英数・CapsLock」キーでは、「和字全角」と「英字全角」の相互変換を維持したいわけです。というより、このキーの操作を、どちらも使えるよう、自分でコントロールしたいわけです。
 自分でコントロールするためには、「英数・CapsLock」キーを押すと、何かの拍子で、「英字全角」になったり「英字半角」になったりする、その「何かの拍子」が分かればいいと思うのですが、それが、分かりません。
 PCの種類によって、キーボード操作は違うのかもしれませんが、一つ、よろしくお願いいたします。

 言語変換関係の質問は、「言語バー」「キーボード」関係で、多数あるのですが、どれが自分の探している症状なのか分からないので、新しく質問します。
 PCはSOTECのWV2150Cで、OSはWindowsXPで、ローマ字入力しています。
 キーボードによる、「英字和字」変換と、「英字の全角・半角」変換が、自分の意図しない変換に、どういうわけか、時々変わってしまいます。言語バーをマウスでクリックするのは面倒なので、キーボードで操作したいのですが、それが、コントロール不能になっ...続きを読む

Aベストアンサー

#2です。

質問者さんの使用法なら、必要はないでしょうが、
 >このキーの操作を、どちらも使えるよう、自分でコントロールしたい
ということなので、補足しておきます。

「全角英数」/「半角英数」を基本設定の優先順位と逆のほうにしたいときは、[Caps Lock]の後、[Shift]+[無変換]で行えます。

なお、ご存じかと思いますが、「全(半)角英数」から「ひらがな」に復帰するには、[Caps Lock]のほか[無変換]でも[カタカナ ひらがな]でも可能です。

ひとつ注意が必要なのは、これもご存じかも知れませんが、次の点です。
「全(半)角英数」モードで入力作業をした後、「ひらがな」に復帰することなく、[半角/全角]によって「直接入力」モードにすると、
次に「ひらがな」に復帰しようとしても、[半角/全角]を押したのでは戻れず、「全(半)角英数」になるだけです。
この場合、その上で[Caps Lock]を押せばいいのですが、「直接入力」から[カタカナ ひらがな]を2回押す方法もあります。
とにかく、[半角/全角]を何度押しても行ったり来たりするばかりで、「ひらがな」には戻れません。

御参考までに、次のような操作法も考えられます。
1.「ひらがな」→「全(半)角英数」は[Caps Lock]
2.「ひらがな」→「直接入力」は[半角/全角]
これは当たり前ですね。

3.「全(半)角英数」→「ひらがな」は[カタカナ ひらがな]
4.「直接入力」→「ひらがな」も[カタカナ ひらがな]
 * 1回押して「全(半)角英数」になったときは、続けてもう1回押す。
 (ややこしければ、常に2連打することにしてもよい。)

つまり[半角/全角]や[Caps Lock]をON/OFに使うのではなく、それぞれ一方通行にしておいて、
「ひらがな」に復帰するときはいつも[カタカナ ひらがな]を使うという方法です。

#2です。

質問者さんの使用法なら、必要はないでしょうが、
 >このキーの操作を、どちらも使えるよう、自分でコントロールしたい
ということなので、補足しておきます。

「全角英数」/「半角英数」を基本設定の優先順位と逆のほうにしたいときは、[Caps Lock]の後、[Shift]+[無変換]で行えます。

なお、ご存じかと思いますが、「全(半)角英数」から「ひらがな」に復帰するには、[Caps Lock]のほか[無変換]でも[カタカナ ひらがな]でも可能です。

ひとつ注意が必要なのは、これもご存じかも知れ...続きを読む

Qテキストボックス入力を半角英数字に制限する

よろしくお願いします。

テキストボックスに入力される文字を、
半角英数字(英語の場合は大文字のみ)以外入力できないように制限したいのですが可能でしょうか?

もしくは半角英数字以外が入力された場合アラートを出すようにしたいのですが。。。

また、文字数の制限も可能でしょうか?

第一希望)
12文字以内の半角英数大文字以外入力できないように入力制限する。

第二希望)
12文字以内の半角英数大文字以外入力の文字が入力されている状況でボタン(=CGI実行)を押すと警告のアラートが出る。

第三希望)
半角英数大文字以外入力できないように制限、もしくはアラート表示。

例)
AAAA-1234567 ○(ハイフンを含め12文字以内の半角英数字)
AAAA-123456789 ×(12文字以内でない)
aaaa-1234567 ×(小文字が含まれている)


webサーバー・・・HP-UX
web・・・IE6
開発端末・・・windows2000(Tera Term 使用)

情報をお持ちの方いらっしゃいましたら、
よろしくお願いいたします。

よろしくお願いします。

テキストボックスに入力される文字を、
半角英数字(英語の場合は大文字のみ)以外入力できないように制限したいのですが可能でしょうか?

もしくは半角英数字以外が入力された場合アラートを出すようにしたいのですが。。。

また、文字数の制限も可能でしょうか?

第一希望)
12文字以内の半角英数大文字以外入力できないように入力制限する。

第二希望)
12文字以内の半角英数大文字以外入力の文字が入力されている状況でボタン(=CGI実行)を押すと警告のアラートが...続きを読む

Aベストアンサー

第二希望の条件について。
前提としてチェックするテキストボックスのnameがtxtであった場合の説明をします。
まず、次のようにform開始タグにname="fm"とonsubmit="return checkForm()"を追加します。

<form name="fm" action="********.cgi" method="post" onsubmit="return checkForm()">


次に以下を<head>~</head>に貼り付けることで、JavaScriptによる送信前のチェックが可能です。

---------------------------------------
<script type="text/javascript">
<!--
function checkForm(){
var str = document.fm.txt.value;
if (str.match(/[^A-Z\d\-]/)) {
alert("半角英数字(大文字)しか入力できません");
return false;
}
else if (str.length > 12) {
alert("12文字以内で入力してください");
return false;
}
}
//-->
</script>
---------------------------------------

「ハイフンを含め」と書いているので、ハイフンを入れても有効なようにしました。
また、12文字以内としか書かれていないので0文字でも警告が出ないようになっています。
もし、何も入力されていない場合でも警告を出すならば、次のようにしてください。

---------------------------------------
if (!str) {
alert("何も入力されていません");
return false;
}
else if (str.match(/[^A-Z\d\-]/)) {
alert("半角英数字(大文字)しか入力できません");
return false;
}
else if (str.length > 12) {
alert("12文字以内で入力してください");
return false;
}
---------------------------------------

第二希望の条件について。
前提としてチェックするテキストボックスのnameがtxtであった場合の説明をします。
まず、次のようにform開始タグにname="fm"とonsubmit="return checkForm()"を追加します。

<form name="fm" action="********.cgi" method="post" onsubmit="return checkForm()">


次に以下を<head>~</head>に貼り付けることで、JavaScriptによる送信前のチェックが可能です。

---------------------------------------
<script type="text/javascript">
<!--
function checkForm(){
...続きを読む

QALT+半角/全角を押さなければ、文字を変換できません。

PCを立ち上げ、文字を最初に入力しようとすると、英数字で入力されます。

そこで、日本語に変換しようとするのですが、ALT+半角/全角を押さなければ、文字を変換できません。


その後は、半角/全角を押すだけで、変換できるようになります。



一番初めから、半角/全角を押すだけで、変換できるようにするためにはどうすればいいですか?



PC
dell 1525
WindowsVista Home Premium
http://www.sd-dream.com/pasocompass/PC/Dell/Inspiron1525.html

Aベストアンサー

自分の場合は既定の言語を
”日本語(日本)-日本語”から
”日本語(日本)-Microsoft IME”
にしたら半角/全角だけで変換できるようになりました。

Qチェックボックスとテキストフォームが両方空の場合はPOSTを不許可にしたい

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1810910
でご教示いただいたスクリプトに若干の機能追加です。

(1) テキストフォームに
値がある場合はチェックOFF
値がない場合はチェックON

(2) テキストフォームに何か値があるのにチェックされた
場合は、テキストフォームの値はクリア、

以上までは、これまで当掲示板で教わったいろいろな
サンプルで何とか実現できたのですが、

チェック=OFF、テキストフォーム=空 という状態が作れてしまうため
この状態にsubmitボタンを押下した際は、
alert("チェックとテキストの両方が指定されていません");
のように、POSTを許可しないようにしたいです。

よろしくお願い致します。


<html>
<head>
<script language="JavaScript" type="text/JavaScript">
<!--
function checktext() {
if(document.n0.n2.value.length){document.n0.n1.checked=false;}
else{document.n0.n1.checked=true;}
}

function autoClear(f,cn,fl){
for (var i=0;i<f.elements.length;i++) {
if (f.elements[i].className == cn) {
f.elements[i].value = "";
}
}
}


//-->
</script>
</head>
<body>
<form name="n0" id="0" action="" method="post">
<input type="checkbox" name="n1" id="1" onClick="autoClear(this.form,'n2',this.checked);" checked>
<input type="text" name="n2" id="2" class="n2" onChange="checktext()">
<input type="submit">
</form>
</body>
</html>

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1810910
でご教示いただいたスクリプトに若干の機能追加です。

(1) テキストフォームに
値がある場合はチェックOFF
値がない場合はチェックON

(2) テキストフォームに何か値があるのにチェックされた
場合は、テキストフォームの値はクリア、

以上までは、これまで当掲示板で教わったいろいろな
サンプルで何とか実現できたのですが、

チェック=OFF、テキストフォーム=空 という状態が作れてしまうため
この状態にsubmitボタンを押下した際は、
ale...続きを読む

Aベストアンサー

<input type="submit">

<input type="submit" onClick="if((n1.checked==false)&&(n2.value=='')) return false;">
に置き換えてみてください。

というか、checkboxのonClickに手を入れれば両方とも空にならなく出来そうですが・・・。


人気Q&Aランキング

おすすめ情報