とりあえず、大文字・小文字・数字・記号(いくつかは使用禁止)を、それぞれ最低一つずつ織り交ぜる、ということで↓
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 件のコメント:
コメントを投稿