質問: 正規表現で入力フォームの制御をかけたく色々試しているのですがうまくいきません。 要件は以下です。 ・漢字とカタカナはOK。 ・文字列の前と最後に空白はNG。 ・文字列の間に半角スペースも全角スペースもいれかれるが、1つまでとする。 正規表現のルールを参考にしながら最終的に近いところまでできてはいるのですが、組み合わせ方があまり分からず3時間ほど苦戦しています。 `/^(?=[ァ-ン一-龥])(?!.*\s{2,}).*$/` | 文字列 | 期待値 | | --- | --- | | `漢字` | OK | | `カタカナ` | OK | | `漢字カタカナ` | OK | | `あ漢字カタカナ` | NG | | `漢字あカタカナ` | NG | | `漢字カタカナあ` | NG | | 半角スペース | 期待値 | | --- | --- | | `漢字カタカナ` | NG | | `漢字カタカナ` | NG | | `漢字 カタカナ` | OK | | `漢字 カタカナ` | NG | | `漢字カタカナ` | NG | | `漢字カタカナ` | NG | | 全角スペース | 期待値 | | --- | --- | | `漢字カタカナ` | NG | | `漢字カタカナ` | NG | | `漢字 カタカナ` | OK | | `漢字 カタカナ` | NG | | `漢字カタカナ` | NG | | `漢字カタカナ` | NG | どういう組み合わせで上記実現できますでしょうか?
回答: 1.漢字またはカタカナのみ 2.漢字またはカタカナのみ+空白1つ+漢字またはカタカナのみ で分けて考えればどうでしょうか 1.[ァ-ン一-龥]+ 2.[ァ-ン一-龥]+[\s ][ァ-ン一-龥]+ 合わせて ``` /^([ァ-ン一-龥]+|([ァ-ン一-龥]+[\s ][ァ-ン一-龥]+))$/ ```