全角⇔半角の変換


公開 (UL): 2021-03-04
更新 (UD): 2021-03-13
閲覧 (DL): 2023-12-02

この記事のもくじ

→本文へ
当サイトは SNS の公式アカウントがないので,「議論ネタ」にする際は,皆さんのブログ,メーリングリスト,SNS や掲示板などで,適当にハッシュタグを付けたりリンクを掲載するなどしてご利用ください。

前の記事

2021-02-23
五十音の「辞書順」の処理

次の記事

2021-06-01
PPOP

最近の記事

2023-09-15
Perl の正規表現での A と Z の扱い
2023-01-16
Android のキーボード・ショートカット一覧
2022-08-09
代表的な画像ファイル形式一覧
2022-04-04
サイトのローカル試験と実ウェブ上の差を縮める手法(Perl)
2021-12-17
Perl で利用宣言時にモジュールをカスタマイズする
新着情報
She appears also the top page.

新着情報 Recent docs.

Sorry, but almost these pages are only Japanese.
Perl の正規表現での \A と \Z の扱い «Easy manipulation for GET-query or POST-form data with \A and \Z in regular expressoin.»
\A と \Z を使ったクエリーやフォームデータの直接的な簡単操作。 (エンジニア向け)
倫理意識の社会的低下 «One day, I set to stop DM from a banking corporation, but those continue to be sent after that. I'm feeling falling sense of ethics in Japanese society.»
某銀行からの DM が,およそ金融とは関係なく興味のないものだらけ。しかし,止める設定をしても直ぐ止まらないシステムに,倫理意識の社会的低下を感じた話。
「マイナンバー」が危険なこれだけの理由-2 «Wny is Japanese taxpayer ID system "My number" repeating to leak private info and misregistration.»
最近多発している問題でいかに深刻な影響があり基本的対策の欠如だったかを解説。
オヤクショの「上から目線」という殺傷光線 «Tokyo government gifted me "Okome(rice) coupon". But I have allergic to rice. The government officers often make services considering insufficiently, then people is leaded wrong by that.»
東京都から届いた「おこめクーポン」は,食品の詳細不明でアレルギー持ちは不安,ウェブは「申し込めない」トラップだらけ……こんなオヤクショの「上から目線」の原因を考察。
給使乖離現象 «"Server and User Design Gap" phenomenon (abbr: SUDG), it's the trend to lack of considerations in design for user of the service.»
愚かな経営者たちが考えた劣悪なウェブサービスにより,人々が一方的に不利益を被るという話。
個人情報の提示要求者側に求められる責任 «The responsibilities of the government that wants some private infomations.»
給付金の手続きに突然「旧住所」の提示を求めて来たお役所の対応の疑問からその「責任」を考える。
日本の「IT 人材不足」の正体 «The simple reason why Japanese companies lack IT-skill.»
保険会社からのセキュリティガバガバメールが「IT 人材不足」の正体を暴く。

人気記事 Frequent view pages.

表計算で「令和」に対応する方法
How to adapt the Gengo era "Reiwa" on spreadsheet applicaiton.

古いアプリも OK。「表計算 令和」の検索結果上位御礼!
表計算ソフトで予定表を自動作成する超便利な方法 «How to make the schedule table automatically on spread-sheet.»
「毎月第○×曜日」的な法則は自動で作らせてラクしよう!
表計算ソフトに「個人情報保護機能」を仕込む方法 «Prevention to leak private-data with spread-​sheet macro function.»
「漏えい」のためのフェイルセーフ。「表計算 個人情報」の検索結果上位御礼!
Wary-Basher (ワリバッシャー)
DIY device that enables the handicapped to operate many things with a switch like push-button.

障害者の様々な操作をスイッチ操作で実現する器具。キットも発売中! 「作り方」PDF ダウンロード多数御礼!←地方教育委で人気。
貧乏人を殺す行政の構造 «Structurally, the administrators kill the poors in Japan.»
ヘタすると多摩川に流されるところだった台風 19 号

この記事に対する → 調布市の反応

おすすめ! Recommend

現在当サイト人気 No.1!
Android のキーボード・ショートカット一覧 «The list of Android Keyboard Shortcuts (EN ready).»
Android のスマホやタブレットにキーボードをつないだ時に知っていると便利なキー操作。
[PDF 118KB] 生活保護申請時のオヤクショ対策
申請の「水際作戦」を突破するための心得。「ホームレス総合相談ネットワーク」製作の図解を小サイズ化したもの。

出典 ☞ 路上からもできるわたしの生活保護申請ガイド (2017 年版) (外部リンク)
文字ベース天気予報 «Weather forecast in text mainly from JMA Json-data.»
古いブラウザやスマホ,音読ソフトでも大丈夫! 気象庁の JSON データを利用した文字ベースの天気予報(試験版)。
「事故防シート」について «Cared persons taking with "Jiko-​Bow-​Sheet" prevents from accidents.»
介護現場の負担軽減と事故防止のアイデア
【連載】 キーボードの「キー」の詳しい使い方 «The detial of usage each key on keybord.»
各キーの機能詳細。機能別五十音順一覧。
和易ゐ記 (WAI-WIKI) «WAI-WIKI is light­weight markup language for Japanese, and generates HTML on this server on-​demand.»
当サイトで開発/使用中の日本語向けに特化した軽量マークアップ言語

ご連絡 Contact

▼ メールフォームはこちら
SSL 証明書の更新に不具合が多いため,期限切れエラーが出た際は,お手数ですが「例外指定」をお願いいたします。

ファイルの暗号化
当サイト管理者(石川)宛にメール添付で送信するファイルを暗号化したい時は,唯一のパスワードを PPOP で取得できます。 PPOP gives a password for encryption of the file(s) attached your mail to the admini­strator of this site M.Ishikawa.
PPOP

MEMO / Email to the Author
あとで調べたい点のメモなどに利用可能。
下部ボタンでそのまま著者にメールできます。


CAPTCHA: easy math prob in Japanese

時事川柳 News Senryu

子育ての  
「ヒマ・カネ」吹き飛ぶ
  インボイス
Rearing kids. For blocking it the Japanese "invoice" system inducted.

 今は個人でウェブサービスを設計し, 多数の利用者を相手に薄利多売で稼ぐことも原理的には可能だ。 一方,某会計ソフト会社の試算では, 「インボイス」の書類作成は約 20 分かかるとか。 もしウェブサービスの利用者が9千人いて,対応を求められると,年間 3000 時間になる。1日8時間労働,週休2日とすれば,年間約 2000 時間労働が標準だろうが, 「インボイス」への対応だけでそれをはるかに上回ってしまう。 「薄利多売」は資本主義下のビジネス原理のはずが, それに則って収入を増やそうとすると,「インボイス」制度に阻まれる。 手続きで忙殺されるのを避けたいと考えると事業拡大できないから, 個人が家庭を築くために余裕ある資金源を確保することも許されない。 「ビジネス原理」を無視し,「少子化」を悪化させて, 「職業選択の自由」をも否定する違憲制度, それが「インボイス」である。

(⌚2023-09-28)
前掲載: 自民県 絶対しないぞ ふるさと税

ご支援 Support this site.

まだまだ コロナ失業中!!
CORONA-NEET, seeking works now!

この活動をご支援いただける方はこちらへ Could you support this site, see here (but Japanese).
都道府県庁さん, 地方自治体さんや教育委員会さん, 障害者就労支援機関さんやその他公的機関,省官庁さん, 「タダ見」しているだけでは, 格差が広がるだけだと思いませんか?
Welcome!
Amazon    Google
The companies, thanks for many accesses every months! Are the articles I wrote helping for increasing your income? Although, I cannot get even a penny and jobs from that.

 時々この機能が欲しくなる。特に「全角→半角」の方向。
 ワリと大きな企業サイトのフォームでも「半角で入力してください」などと注文がつけられている項目があり,それに気づかず全角で入力してしまうと受け付けてくれなかったりする。しかし,「かな」を考えなければ,全角を半角にするのはそんなにむずかしくないのではないか。自動で変換する機能くらい付けてくれりゃいいのにと思う。大企業でもそこまで考慮してコード書ける人がいないのか,あるいはやはりコードはどこかに「丸投げ」して,「文字コード」というものをよく知らない人がフォーム作ったりしているということなのか……。

 特に Perl の正規表現置換によって簡単に実現すると分かったので,メモついでに書いておく。

● Perl

 Perl には UNICODE の「内部表現」機能があるが,それを使うと負担が大きそうな気がする。ファイルなどでは UTF-8 を直接扱えたほうがラクな気もするし。というわけで,ここでは UTF-8 前提で考える。

◆ 全角→半角

 UTF-8 で,スペースとかなを考慮しなくてもいいなら,正規表現置換一文で書ける。既定変数 $_ を対象にするなら,これでいい。

▼ 全角→半角(スペース,かな除く)
   # UTF-8 全角 → 半角 by M.Ishikawa(スペース,かな除く)
   s/\xEF(\xBC[\x81-\xBF]|\xBD[\x80-\x9E])/chr((ord(substr($1,0,1))& 1)*64+(ord(substr($1,1,1))&0x3F)+32)/eg;

● JavaScript

 JavaScript の内部表現は UNICODE そのものだから,文字単位で考えればいい。

◆ 全角→半角

 String オブジェクトにはいちおう replace() というメソッドが用意されているが,全置換するには正規表現を使う必要がある。また,筆者が使っている FireFox 45 では,replaceAll() というメソッドは使えず,結局 replace() の正規表現に全置換オプション(g)を付けて対応する必要が出てくる。いずれにせよ,正規表現未対応の古いブラウザでは使えない。もし正規表現が使える場合は,String オブジェクトにメソッドを追加して使うとしたらこんな感じ。“*1”というのは,十進数 parseInt() の省略形。直後の“+2”を数値として加算するため。

▼ 全角→半角(スペース,かな除く簡易型)
   String.prototype.ztoh = function(){ // 全角 → 半角
   return unescape( escape( this ).
	  replace( /%uFF([0-5])/ig, '%u00'+('$1'* 1 + 2) ) );
   }

 しかしこれ,筆者の使う FireFox 45 ではうまくいかない。“$1”が単なる文字列,あるいは裸だと未定義となってしまう。JavaScript の正規表現の実装は,わりと中途半端のようだ。
 ただ,数字に限るなら,これでいいのかもしれない。

▼ 全角→半角(数字限定簡易型)
   String.prototype.ztoh = function(){ // 全角 → 半角
   return unescape( escape( this ).replace(/%uFF1/ig,'%u003') );
   }

 正規表現を使わない場合は,こんな感じか。たぶんこのほうが確実。

▼ 全角→半角(スペース,かな除く)
   String.prototype.ztoh = function(){ // 全角 → 半角
   var	i, c, res =''; // by M.Ishikawa(スペース,かな除く)
	for( i=0; i < this.length; i++ ) res +=
	  ( '\uFF01'<=( c = this.charAt( i ) )&& c <'\uFF5F' )
	  ? unescape( '%'+(escape( c ).substr( -2, 1 )*1+2)+
			   escape( c ).substr( -1, 1 ) ): c;
	return res;
   }

 フォームで,たとえば郵便番号(zipcode)の項目の記載内容にある全角文字を半角にしたい時はこんな感じになる。

▼ 全角→半角(スペース,かな除く)
	var  elemobj = document.forms[0].elements.zipcode;
	elemobj.value = elemobj.value.ztoh();


© M.Ishikawa; TREEWARE 2023.