
いつもお世話になっております。
javascriptで半角空白チェックを行っております。
その場合に、半角空白のJISコードは
キーボードから入力した場合は「0x20」
(Unicodeでも「0x20」)
代替文字列()の場合は「0xa0」
(Unicodeでは「0xf8f0」??)
となります。
両方とも半角空白と扱いたいため以下のようなロジックを用いています。
【javascript部】
function chk_han_kuhaku(i_char) {
for( i=0; i<i_char.length; i++ ){
var c = i_char.charCodeAt(i);
// Unicodeで比較
if ((c == 0x20) || (c == 0xf8f0)) {
alert(i + "文字目は半角空白です。");
} else {
alert(i + "文字目は半角空白ではありません。");
}
}
}
【html部】
<input type="button" value="test" onclick="javascript:chk_han_kuhaku('abc de f')">
この場合、「0x20」はif文でhitしますが
「0xf8f0」にはif文でhitしません。
どういった対処が必要でしょうか?
どなたかご教授下さい。
環境は
OS:WindowsXP SP2
ブラウザ:IE6
です。
宜しくお願いいたします。
No.3ベストアンサー
- 回答日時:
なんか・・・・とてつもなく「変なこと」をしていませんか?
まるで、VBか何かのPGを見ているような気がしますが。
要は文字列中に、半角空白が含まれているか否かを判定したいのですよね?
function chk_han_kuhaku(i_char) {
if(i_char.search(/ /)>-1) alert("半角空白を含んでいます。");
if(i_char.search(/'/)>-1) alert("半角空白を含んでいます。");
}
こういうシンプルな構造にしたほうが宜しくないですか?
もしどうしても、文字位置が必要なら
var Arr=i_char.search(/ |/g);
で文字位置の配列が取得できる筈。
目的が空白文字の排除なら、
i_char.replace(/ |/g,'');
で一発の筈。
無闇にループで一文字づつチェックする理由が、あたしにはちょっと良く解りません。
No.2
- 回答日時:
横からごめんなさい
>しかし、JISコードで比較することになりますが
>charCodeAtは正しくはUnicodeを返す仕様と認識しています。
charCodeAt は、Unicode を返す仕様ということは、返ってきたものはUnicode でのコードだと思いますよ。
0xA0のコードにおいてはUnicode, JIS, ASCII は同じだと考えて良いと思います。
ところで、0xf8f0 については、どこからでてきたんでしょうか?
No.1
- 回答日時:
function chk_han_kuhaku(i_char) {
for( i=0; i<i_char.length; i++ ){
var c = i_char.charCodeAt(i);
// Unicodeで比較
if ((c == 0x20) || (c == 0xA0 )) {
alert(i + "文字目は半角空白です。");
} else {
alert(i + "文字目は半角空白ではありません。");
}
}
}
ご回答ありがとうございます。
上記方法で正しく動作します。
しかし、JISコードで比較することになりますが
charCodeAtは正しくはUnicodeを返す仕様と認識しています。
その他、対応方法等あればご教授ください。
宜しくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- JavaScript フォームが空欄の時にフォームの外をクリックすると、エラーが出るコードを調べています。 1 2023/06/25 11:51
- その他(データベース) Accessのクエリで1フィールドの抽出条件設定をNullでなく全角半角含む空白のみの文字列でない文 1 2023/04/24 15:20
- JavaScript javascriptで入力フォームが空欄の時にアラートによるエラーを出すコードを書いています。 2 2023/06/13 17:58
- JavaScript javascript作成してます。ラジオボタンで判定するコードを書いてます。 1 2023/07/18 11:03
- Excel(エクセル) エクセルの数式で教えてください。 2 2022/04/01 09:10
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- Visual Basic(VBA) VBA 「,」・空白・カタカナ等の複数条件のマクロ 2 2023/08/23 11:57
- PDF C#でfloatを整数部、小数部とも桁数固定で文字表示したい 2 2022/07/28 09:37
- その他(プログラミング・Web制作) 単純なコマンドプロンプトが動きません。 2 2022/04/19 15:21
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JavascriptでIMEのON,OFF制御
-
Excel VBA 見本通りに...
-
ASP.NET TextBox 入力制限
-
氏名の入力チェックに全角スペ...
-
知っていたようで知らないことです
-
インデントをスペースにするメ...
-
プログラムをする時、エディタ...
-
UTF-8で日本語を表示させるには
-
カラムの末尾にスペースが入る
-
XMLを作成してもタグしか表示さ...
-
AfterEffectsでイージーイーズ...
-
Hタグを改行禁止にしてspanのよ...
-
_blank?_brank?
-
Dreamweaverの改行コードをLFに...
-
AirTag(エアタグ)やその他GPS...
-
ブラウザでのタイ語の改行について
-
Dream Weaverの改行時にTabキー...
-
メモ帳やエディタで一度にスペ...
-
ツールチップの表示時間の調整
-
ASP.Net 別ウィンドウを開く・...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excel VBA 見本通りに...
-
C#のシリアル通信プログラムで...
-
ASP.NET TextBox 入力制限
-
JavascriptでIMEのON,OFF制御
-
JSONパース時に改行があるとエ...
-
ASCII文字列以外を検出する正規...
-
なぜtabによるインデントはいけ...
-
ローマ数字などの文字化け対策...
-
Eclipseの空白が変な...
-
ホームページ制作でコピーライ...
-
stray '\\240' in programのエ...
-
知っていたようで知らないことです
-
氏名の入力チェックに全角スペ...
-
インデントをスペースにするメ...
-
(再投稿) Word VBA マクロ スペ...
-
\\n って?
-
ソースコードの改行文字は何に...
-
半角空白チェックについて
-
テキストフィールドでの全角チ...
-
Pythonの勉強を始めました。バ...
おすすめ情報