とりあえず、大文字・小文字・数字・記号(いくつかは使用禁止)を、それぞれ最低一つずつ織り交ぜる、ということで↓
var reg = /(?=.*[A-Z]+)(?=.*[a-z]+)(?=.*[0-9]+)(?=.*[許可する記号]+).+$/; if ($("#hoge").text().match(reg)) { alert("That's Right!!"); };のようになる。
はじめはVB.NetとASP.NETで実装していたが、少しはまってしまったのは、
var reg = /(?=.*[A-Z]+)(?=.*[a-z]+)(?=.*[0-9]+)(?=.*[+=-\']+).+$/;
これだとどうも-(マイナス)がJavaScriptだと引っかかるので、エスケープが必要なようだ。
可視化してくれるstrfriendがないとここに気づくのにさらに時間がかかったかも。→http://strfriend.com/
と、満足していたところ、ほんとのところはどうも
「大文字・小文字・数字・記号のうち、いずれか3種類があればOK」とのこと。
var reg = [/(?=.*[A-Z]+).+$/,/(?=.*[a-z]+).+$/,/(?=.*[0-9]+).+$/,/(?=.*[許可する記号]+).+$/]; var cnt = 0; for (i = 0; i < 4 ; i += 1) { if ($("#hoge").text().match(reg[i])) { cnt += 1; }; if (cnt >= 3) { alert("That's Right!!"); }; }
という感じで落ち着いた。
0 件のコメント:
コメントを投稿