kokogento
@kokogento (ここ げんと)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

正規表現で全角カタカナだけを許容するには

解決したいこと

正規表現を使って
・カタカナは半角 or 全角どちらでもOK
・記号は半角
・「ャ」などの小文字はNG

と言うルールにしたいです。
書き方がわからないのでどなたかご教授お願いしたいです。

環境

vue 2.6.11
言語はjavascript

該当するソースコード

vueのバリデーションを使っています。

        rules: {
                    name_kana: [
                        {
                            required: true,
                            message: this.$t('error.required'),
                            trigger: ['change', 'blur'],
                        },
                        {
                            pattern: /^[0-9A-Zア-゚「」()\\ \/.-]+$/,
                            message: this.$t('company.error.format name_kana transfer'),
                            trigger: ['change', 'blur'],
                        },
                        {
                            min: 0,
                            max: 40,
                            message: this.$t('error.min max kana'),
                            trigger: ['change', 'blur'],
                        },
                    ],
pattern: /^[0-9A-Zア-「」()\\ \/.-]+$/,

が今のルールで、このルールを維持したまま追加で全角カタカナ(大文字だけ)も許容したいです。

自分で試したこと

pattern: /^[0-9A-Zア-゚ァ-ヴー「」()\\ \/.-]+$/,

これで半角カタカナと全角カタカナを許容できましたが、全角カタカナも半角カタカナと同じように大文字だけ使用可にしたいです。(つまり「カイシャ」はNGで「カイシヤ」はOKにしたい)
しかし調べたところ、全角カタカナは半角カタカナと違って大文字も小文字も混ざった順番になっております。何か方法はあるでしょうか?

0

3Answer

Comments

  1. @kokogento

    Questioner

    全角カナの判別はそれでできました!
    ありがとうございます!

Comments

  1. @kokogento

    Questioner

    正規表現の表し方を理解していなかったので👇を参考にした時、半角カタカナと全角カタカナの文字コード順が同じだと思っていました。。
    半角カタカナは許容したいので`ア-゚`で合っています!

    https://qiita.com/kokorinosoba/items/78811d7e2b6bc424b1b1#2-ひらがなやカタカナの濁音半濁音にマッチさせたいとき

    `ア-ヴ-゚` も正規表現の表し方を理解していなかったので少し変な記述となっていました。。
    「自分で試したこと」の部分を編集しておきます!

シンプルに小文字を取り除いた文字列を指定する形で実装しました。正規表現に「全角大文字カタカナ」だけとか判別はできないようです!

 pattern:
  /^[0-9A-Zア-゚アイウエオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモヤユヨラリルレロワンー「」()\\ \/.-]+$/,
0Like

Your answer might help someone💌