質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

88.19%

js 正規表現 カタカナと半角と記号以外はじく

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 2,861
退会済みユーザー

退会済みユーザー

フリガナの入力チェックで
入力された文字がカタカナ(半角、全角)、記号以外はじく処理にしたいです。

    var hurigana = document.getElementById("tb_phonetic").value;
    if (isNull(document.getElementById("tb_phonetic").value)) {
        alert("フリガナを入力してください。");
        return false;
    }
    else if (!hurigana.match(ここにカタカナ(半角、全角)、記号以外はじく処理を入れたい) {
        alert("カタカナで入力してください")
        return false;
    }

よろしくお願いします

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • m.ts10806

    2018/09/25 17:18

    ホワイトリスト形式とブラックリスト形式どちらを想定していますか? 質問は編集できるので適宜ご対応ください。

    キャンセル

  • SurferOnWww

    2018/09/26 07:41

    もし、ASP.NET Web Forms アプリでユーザー入力の検証を行いたいという話であれば、自力で JavaScript のコードを書かないで、フレームワークに用意されている検証コントロールを使いましょう。

    キャンセル

  • 退会済みユーザー

    2018/09/26 11:17

    複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という意見がありました
    「質問を編集する」ボタンから編集を行い、調査したこと・試したことを記入していただくと、回答が得られやすくなります。

回答 3

+4

どこまでを拾いたいかによりますが

str.match(/[^\x20-\x7e\u30A1-\u30FF\uFF61-\uFF9F]/)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/25 16:40

    > カタカナと半角と記号以外
    をマッチさせているので「ひらがな」はマッチするんですよね?

    console.log("あ".match(/[^\x20-\x7e\u30A1-\u30FF\uFF61-\uFF9F]/));
    console.log("ア".match(/[^\x20-\x7e\u30A1-\u30FF\uFF61-\uFF9F]/));
    console.log("ア".match(/[^\x20-\x7e\u30A1-\u30FF\uFF61-\uFF9F]/));
    console.log("a".match(/[^\x20-\x7e\u30A1-\u30FF\uFF61-\uFF9F]/));
    console.log("!".match(/[^\x20-\x7e\u30A1-\u30FF\uFF61-\uFF9F]/));

    キャンセル

  • 2018/09/25 17:53

    to kkk_tt さん
    英数字記号類 \x20-\x7e
    全角カタカナ \u30A1-\u30FF
    半角カタカナ \uFF61-\uFF9F
    となっているのでほぼ要件通りですよ。
    真偽が逆になっているので混乱しているのかもしれませんが

    キャンセル

  • 2018/09/25 18:03

    \u30F7-\u30FF は質問者さんの言う「全角カタカナ」に含まれるのでしょうか? 本人に聞かねければ分からないことですが・・・ 私のレスの画像を見ていただければと思います。

    キャンセル

checkベストアンサー

+3

記号のところは自由に追加できます。

var str = 'アアa$'
var reg = /^[ァ-ンァ-ン!@#$%]+$/
if (str.match(reg)) {
  console.log('matching!')
} else {
  console.log('not matching...')
}

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/25 17:57

    記号はともかく、質問者さんが言う「カタカナ(半角、全角)」は ァ-ンァ-ン とは言えないのでは? 質問者さん本人に確認しないと分からないはずですけど・・・

    キャンセル

  • 2018/09/26 00:29

    少なくとも[ァ-ヴーヲ-゚]は必要でしょうね。・ヵヷヽヿㇰㇷ゚「」、。あたりを入れるかは人によると思いますけど。

    キャンセル

  • 2018/09/26 09:15

    あくまでもやり方の提示なので細かいところは質問者さんの方で調整してもらえば良いと思ってます。

    キャンセル

0

上のコメントで「Unicode でどの文字かを指定してもらえると分かりやすいのですが。IME パッドを使えますか? 画像を貼っておきます。」と書きましたが、それを貼っておきます。回答ではありませんが、回答欄にしか画像は貼れないのでご容赦ください。

イメージ説明

【追記】

黙ってマイナス評価を付けている人がいて、誤解があるかもしれないので説明しておきます。

質問者さんは、質問でフリガナとしては

カタカナ(半角、全角)、記号

に限定したいと言っているようですが、それが何かというのが明確になってないです。

例えば全角カタカナというと、たぶん上の表に含まれるものだと思いますが、ではヷヸヹヺなど一般的には使わないものも含めるのか、それによって正規表現のパターンも変わってきます。

だから「Unicode でどの文字かを指定してもらえると分かりやすいのですが」と言ったのです。

IME パッドを見れば容易に指定できると思うので、そういう提案をしたのです。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/09/25 17:43

    誰、黙ってマイナス評価を付けた人? 理由を書かないのは卑怯者のすることですよ。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 88.19%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る