• ベストアンサー
  • 暇なときにでも

入力された全角英数字だけを見つけて半角に

掲示板の本文に打ち込まれた【全角】ローマ字&数字を 自動で【半角】化してくれるようなスクリプトを探しています。 本文テキストフィールドのonBlur時に使えたらと思っています。 本文なので、英数字だけでなく日本語(全角)も入ります。 ただ、英単語もしばしば使われるので、過去ログの検索効率のため、 英数字は全てを半角で統一できたらと思いまして...。 テキストフィールドに入力された本文から 全角のローマ字&数字だけを見つけ出し、それだけ半角化する、 こんなワガママを可能にしてくれるスクリプトや参考になる サイトさんがどこかにありませんでしょうか?

共感・応援の気持ちを伝えよう!

  • 回答数2
  • 閲覧数337
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • 回答No.2
  • hkd9001
  • ベストアンサー率48% (99/204)

すみません。#1 です。 ご質問の「onBlur時に…」というのを読み落としてしまっていました。以下に、訂正したスクリプトを載せます。全角のアルファベットや数字の混じった文章を書き込んでから、フィールド外をクリックしてみてください。失礼しました~! <html><head> <script language="javascript"> function henkan(){ a = ""; x = document.frm.moji.value; for(i=0; i<x.length; i++) { cd = x.charCodeAt(i); if((cd >= 65296 && cd <= 65305) || (cd >= 65313 && cd <= 65338) || (cd >= 65345 && cd <= 65370)) { a += String.fromCharCode(cd - 65248); } else { a += x.charAt(i); } } document.frm.moji.value = a; } </script> </head> <body><form name="frm"> 下のエリアに何か文章を書き込んでから、エリア外をクリックしてみてください。<br><br> <textarea name="moji"rows=5 columns=30 onBlur="henkan();"></textarea> </form></body></html>

共感・感謝の気持ちを伝えよう!

質問者からのお礼

ありがとうございます!!!まさにこれです。(ローマ字→アルファベットご指摘の通りです。嗚呼、お恥ずかしい。(^^;) さっそく拙サイトの掲示板に組み込ませていただきました。何とお礼を申し上げれば良いのか、言葉にならないほど感謝しております。こんなにスッキリと美しいコードがさくっと書けてしまうなんて、うらやましい!!ABC/ABCなどの配列を作るのかな?と思っていた素人の自分にはこのように文字コードで処理する方法は目からウロコでした。永久保存版としてJavaScriptの勉強にも活用させていただきます。本当にありがとうございました。

関連するQ&A

  • 全角英数字のみ半角英数字にするには。

    VisualC++6.00 を使用しています。 ダイアログのエディットボックスで入力された文字を、 全角英数字のみ半角英数字にしたいのですが、 LCMapString だと、カタカナも半角になってしまいます。 英数字のみ半角にするには、どのようにすればいいでしょうか。 よろしくお願いします。

  • 英数字の全角と半角はどう変えたらいいのでしょうか。

    ウインドウズから初めてマックを導入している初心者です。 英数字の全角と半角はどのようにして変えたらいいのでしょうか。 大文字小文字はシフトキー押しながらで変わったのですが、全角と半角だけがうまく変換できません。

    • ベストアンサー
    • Mac
  • EXCEL 「ASC」関数  英数字の全角を半角に変換するよい方法があれば教えてください

    EXCELで入力しているデータをフィルターを使用して検索できる データベースにしたいのですが、以前からの入力しているデータの英数字が全角、半角が混在していてます。 フィルター検索の際に全角で入力すると半角入力のものがヒットしないので不便で、英数字の半角統一にしたいと考えています。 ASC関数を使用して英数字の全角→半角を行なうこと考えたのですが ASC関数ですとカタカタも半角カタカナに変換されるので 英数字だけを全角→半角にする関数や方法などあれば教えてください。 入力データは 漢字、ひらがな、カタカナ、英数字が混在しています。 希望 全角→漢字、ひらがな、カタカナ 半角→英数字 宜しくお願い致します。

その他の回答 (1)

  • 回答No.1
  • hkd9001
  • ベストアンサー率48% (99/204)

r_bel さん、おはようございます。 さてr_belさんのおっしゃっている「ローマ字」というのが「アルファベット」という意味であれば、以下のスクリプト(自作です…)が参考になるかもしれません。これは、テキストボックスに入れた文字列から全角英数字だけを半角に直してアラート表示させるものです(もし見当違いだったらごめんなさい)。では。 <html><head> <script language="javascript"> function henkan(){ a = ""; x = document.frm.moji.value; for(i=0; i<x.length; i++) { cd = x.charCodeAt(i); if((cd >= 65296 && cd <= 65305) || (cd >= 65313 && cd <= 65338) || (cd >= 65345 && cd <= 65370)) { a += String.fromCharCode(cd - 65248); } else { a += x.charAt(i); } } alert(a); } </script> </head> <body><form name="frm"> <input name="moji" type="text"> <input name="n1" type="button" value="変換" onClick="henkan();"> </form></body></html>

共感・感謝の気持ちを伝えよう!

質問者からのお礼

締め切り時、こちらにも良回答の点数を、と思いましたが、同じ方の返答には1つまでしか点数を付与できないとのこと...残念!でも気持ちは20+10ポイントです。ありがとうございました。m(_ _)m

関連するQ&A

  • 全角英数字を半角に変換

    テキスト文章で ひらがなと全角英数字の文章がありますが、 全角英数と句読点のみ半角に変換したいのですが、 なにか簡単にできる方法はないでしょうか? osはwindows98です。

  • Excelの半角英数字の入力について

    Excelで、あるセル、又は行全体に入力するときに半角、全角の入力にかかわらず、入力したものは必ず半角に変わるようにするにはどうすればいいでしょうか? また、漢字かつ英数字の混合文字列に対して、英数字だけは、全角で入力しても半角に変えてくれるようにするにはどうすればいいでしょうか?

  • 全角英数字を半角英数字に置換する

    全角英数字を半角英数字に置換するJavaScriptを探していて、 見つけはしたのですが、HTML側の書き方が分かりません。 下記がそのソースになります。 onBlurで動くようにしたい場合、どのようにHTML側を記述してやったらよいでしょうか。 /* 全角英数字を半角英数字に置換する */ function z2h_word(src) { return src.replace(/([A-Za-z0-9_])/g, function ($0) { return String.fromCharCode($0.charCodeAt(0) - 65248); }); } 変な質問で申し訳ないですが、わかる方教えて下さい。

  • 全角英数字を半角にしたいんです。

    たとえばメールなどで送られてきた全角の数字をメモ帳上などで半角に直す方法ありますか? また全角英数字を半角に直すソフトなど知ってましたら教えてください。

  • 明細書の英数字の全角・半角について

    明細書の英数字の全角・半角について 特許明細書を会社で書くことになりましたが、英数字や単位についても全角で書く方が良いのでしょうか? 特許電子図書館で調べると、どちらも見受けられるようです。 英字の式や単位を全角で記載すると間延びして、見栄えが悪いのですが、半角で書くとアマチュアのように見られるので、なんでも全角との意見があり迷っています。 英語は数値自体は半角が標準なのですが、特許の世界では全角が良いのでしょうか?

  • 全角英数⇔半角英数に簡単にする方法

    宜しくお願いします。 会社の資料でよく、数字、英文字の半角、全角が統一されていないと怒られます。 ワード、エクセル、パワーポイントで、英数字の全角、半角を簡単に統一する方法を 教えて頂けないでしょうか?(基本英数字は半角にそろえたいです) 一つ一つ、置換で行ったり、エクセルでは関数を使えばできるのは調べましたが 一括返還のショートカットキーのようなものや他に方法があれば教えてください。 宜しくお願いします。

  • 常に全角英数字入力にしたい

    こんにちは。このたびパソコンを買い替えました。ソニーVAIOです。 ちょっと使ってみたのですが,「英数」にすると,必ず半角英数文字入力になります。 私はこれまで常に全角英数字で入力してたので,このパソコンでも全角英数字で入力したいのですが,どうやれば全角英数字入力になりますか? ちなみに,この質問,VISTAのパソコンを購入したときにも行いました。今回はこの時の質問をもとに, 右下の「あ」(またはA)の上で右クリック→プロバティ→詳細設定→テンキーからの入力→常に全角に設定したのですが,英字は今でも半角のままです。 よろしくお願いします。

  • 全角英数字を半角英数字に変換したい

    全角英数字を半角英数字に変換する方法を教えて下さい。 $data =~ tr/0-9a-zA-Z/0-9a-zA-Z/; 以上のようにした場合、J-perl意外では望みどおりに変換されません。 jcode.plをつかって 全角英数字を半角英数字に変換する方法があると、 書かれていた方がいましたので、 できればjcode.plをつかった場合の 具体的なスクリプトの書き方を教えて下さい。 よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 全角英数字の必要性が理解できない

    たまに、「いつも英字は全角にしたいのに半角で入力されてしまう」とか「入力してある数字を一括して全角に変換したい」などという質問を見かけます。 しかし、なぜわざわざ半角ではなく全角の英数字を使おうとするのか、私には理解できないのです。 「全角とか半角とか気にしていない」という人が全角英数字を使うのは理解できます。 「いつも英数字は半角に統一している」というのも分かります。(実際、私もそうです。) でも、「いつも英数字は全角で」というのは理解できません。 半角じゃなきゃだめという場合はたくさんありますが (メールアドレスとか URL とか) 、全角じゃなきゃだめという場合なんて私には思いつかないのです。 全角の英数字じゃなきゃダメだ、という方、よろしければ理由をお聞かせ下さい。

  • OpenOfficeで半角英数字のみ入力セルにしたい

    OpenOffice使用歴1ヶ月です。(エクセルは仕事で使っています) 縦の列(A列)には英単語だけを入れるので、セルに「半角英文字」だけを入れるようにしたいのですがどうすればいいのでしょう? 日本語全角と半角英数字を手動で切り替えることは出来ますが、必ず半角英文字だけを入れる列なので切り替えずに自動で切り替わるようにしたいのです。

専門家に質問してみよう