🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

2回答

2006閲覧

入力可能な文字の指定について

sorito

総合スコア4

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/01/16 12:54

編集2021/01/16 15:25

前提・実現したいこと

現在研修中でアカウント登録フォームを作っています。
テキストボックスに入力可能な文字種類の指定をしたいです。
名前にはひらがな、漢字のみ入力可と指定ができました。
住所にはひらがな、漢字、数字、カタカナ、記号(ハイフンとスペース)のみ入力可と指定したいのですがうまくいきません。
ご教授お願いいたします。

現在のソースコード

HTML

<li> <label>名前</label> <input type="text" class="text" size="30" name="name"             pattern="[\u4E00-\u9FFF\u3040-\u309Fー]*"> </li> <li> <label>住所</label> <input type="text" class="text" size="30" name="address"            pattern="[\u4E00-\u9FFF\u3040-\u309Fー\uFF66-\uFF9F\u30A1-\u30F6]*"> </li>

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

漢字やカナの部分が16進数でうまくいってるとすれば、あとは数字とハイフン・スペースを選択肢に追加すればよいだけでしょう。
なお、ハイフンは途中に書いてしまうとメタ文字として認識されてしまうので、[の直後に書きます。[の直後に書かれた記号は決してメタ文字とは解釈されない約束になっています。

<input type="text" class="text" size="30" name="address" pattern="[-\u4E00-\u9FFF\u3040-\u309Fー\uFF66-\uFF9F\u30A1-\u30F60-90-9_\s]*">

投稿2021/01/16 16:05

KojiDoi

総合スコア13692

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sorito

2021/01/16 16:45

回答ありがとうございます! 無事指定することができました。 正規表現についても理解を深めていきます。
guest

0

まず、inputタグの末尾に>がないのてすが、正常に表示されていますか。
そして、

HTML

1<input type="text" class="text" size="30" name="address" pattern="[\u4E00-\u9FFF\u3040-\u309Fー\uFF66-\uFF9F\u30A1-\u30F6]*"

の部分が、

HTML

1<input type="text" class="text" size="30" name="address" pattern="[\u4E00-\u9FFF|\u3040-\u309F|ー|\uFF66-\uFF9F|\u30A1-\u30F6]*" >

のように論理和の結合子"|"を介するべきなのではないでしょうか。

投稿2021/01/16 14:31

seastar3

総合スコア2287

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sorito

2021/01/16 15:22 編集

回答ありがとうございます! inputタグの末尾の>は実際には入力されていたので大丈夫でした。 現状で ```\u4E00-\u9FFF|\u3040-\u309F|``` でひらがなと漢字入力可、```\uFF66-\uFF9F|\u30A1-\u30F6``` でカタカナ入力可となっております。これに追加する形で数字と記号(ハイフンとスペース)も入力可としたいのですか組み合わせ方が分からない状態です。 数字入力可は^[0-9]+$でいいのでしょうか? 追加の質問ですみません。
seastar3

2021/01/16 15:10 編集

未確認ですが、[[0-9]|\s|-] でしょうかね。 やはり、 |[[0-9]|\s|-] と、"|"を先に介します。 別件ですが、質問中のコードは マークアップ記法を使って``` ~ ```とはさんで、今からでも見やすく編集しておきましょう。inputタグ末の>も含めて直すとよいでしょう。
sorito

2021/01/16 15:32

seastar3 様 追加のアドバイスありがとうございます! うまくいかなかったのでもう少し調べてみます。
KojiDoi

2021/01/16 15:56

>論理和の結合子"|"を介するべきなのではないでしょうか。 要りません。正規表現の基本を理解しているならありえないコメント。-1
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問