- ベストアンサー
正規表現で2回以上連続する文字にHITさせたい
パスワードの入力で aa や 11 など 2回以上連続する文字を入力したらHITさせてはじきたいんですが どういう正規表現を書けばよいでしょうか /.{2,}/ としたのですが 結局二文以上あれば何にでもHITしてしまいます /a{2,}|b{2,}|c{2,}・・・/ みたいなのを スマートに書く方法はありませんか
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
/(.)\1+/ これでどうでしょう?
パスワードの入力で aa や 11 など 2回以上連続する文字を入力したらHITさせてはじきたいんですが どういう正規表現を書けばよいでしょうか /.{2,}/ としたのですが 結局二文以上あれば何にでもHITしてしまいます /a{2,}|b{2,}|c{2,}・・・/ みたいなのを スマートに書く方法はありませんか
/(.)\1+/ これでどうでしょう?
お礼
すいません 自己解決です \1 は後方参照とかいうのみたいですね 結局 (.)\1 で2文字の連続する文字 が表現でき それの連続(+) ということで二文字以上 になるわけですね 大変勉強になりました ありがとうございました
補足
素早い回答ありがとうございます ばっちりできました ところで 解説などお願いできないでしょうか・・・ (.) 任意の文字が \1 1回HIT + 上記がさらに1回以上HIT??? なぜこれで任意の文字の2回以上連続 となるのか分からないです