ベストアンサー 正規表現でブロックしたい 2010/12/02 15:03 正規表現で下記のパスワードをブロックしたいのですが、どうすれば良いですか。 ・8文字以上の半角英数字(記号入り) ・パスワード中に必ず、英字、数字、記号を1文字を入れる みんなの回答 (6) 専門家の回答 質問者が選んだベストアンサー ベストアンサー babu_baboo ベストアンサー率51% (268/525) 2010/12/02 18:20 回答No.5 <script type="application/javascript; version=1.8"> var check = (function (func, aryReg) (function (password) aryReg.every (func, password))) ((function (r) r.test (this)), [ /[\u0021-\u007e]{8,16}/, /[0-9]/, /[a-z]/i, /[\u0021-\u002f\u003a-\u003f\u005b-\u0060\u007b-\u007e]/ ]); alert(check('asssb.c0')); </script> 質問者 お礼 2010/12/06 19:42 ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 その他の回答 (5) yyr446 ベストアンサー率65% (870/1330) 2010/12/03 18:59 回答No.6 No.1,2の回答者です。 パスワード中に必ず、英字、数字、記号が1文字以上あって、 英字、数字、記号が8文字以上で、その他の文字を含まないの 正規表現の一発パターン /(?=(?=.*\d)(?=.*[a-z])(?!.*[^\x00-\x7F]))[\x00-\x7F]{8,}?/i でどうだ。 (参考) http://www.php.net/manual/ja/regexp.reference.assertions.php 「言明 (assertion) とは、カレントのマッチング位置の直前・直後の文字に対 する テストであり、文字を消費 (consume)〔つまり文字自体にマッチ〕しません。」 「先読み言明 (lookahead assertion) は、 肯定の言明 (positive assertion) の場合 (?= で始まり、 否定の言明 (negative assertion) の場合 (?! で始 まります。」 質問者 お礼 2010/12/06 19:45 ありがとうございます。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 yyr446 ベストアンサー率65% (870/1330) 2010/12/02 17:16 回答No.4 ついでに、サーバー側でも(PHP) <?php header("Content-type:text/html;charset=UTF-8"); if(isset($_POST['password']) && (preg_match('/[[:ascii:]]{8,}?/',$_POST['password']) > 0)){ print_r('OK'); }else{ ?> <!DOCTYPE html> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Pass Word Check</title> </head> <body> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="POST" onsubmit="return check(this);"> <input type="password" name="password"> <button type="submit">送信</button> </form> <script type="text/javascript"> function check(frm){ var password = frm.elements["password"].value; var regex = /[\x00-\x7F]{8,}?/; if(regex.exec(password)) return true; else alert("NG"); return false; } </script> </body> </html> <?php } ?> 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 yyr446 ベストアンサー率65% (870/1330) 2010/12/02 16:22 回答No.3 javascriptの例 <form onsubmit="return check(this);" action="#"> <input name="password"> <button type="submit">送信</button> </form> <script type="text/javascript"> function check(frm){ var password = frm.elements["password"].value; var regex = /[\x00-\x7F]{8,}?/; if(regex.exec(password)) return true; else alert("NG");return false; } </script> 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 yambejp ベストアンサー率51% (3827/7415) 2010/12/02 16:04 回答No.2 >英字、数字、記号を1文字を入れる 定義が微妙にわかりにくいので例示がほしいところ 「abc123_*」みたいに必ず1文字以上入っていないといけないのでしょうか? また、記号とはどこまで使用可能なのでしょうか? 質問者 補足 2010/12/02 16:20 「abc123_*」みたいに必ず1文字以上入っていないといけないのでしょうか? また、記号とはどこまで使用可能なのでしょうか? ご指摘の通りです。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 Struggler ベストアンサー率18% (97/527) 2010/12/02 15:10 回答No.1 対象言語くらい書きましょう 質問者 補足 2010/12/02 16:20 javaScriptです。すみません。 広告を見て全文表示する ログインすると、全ての回答が全文表示されます。 通報する ありがとう 0 カテゴリ [技術者向] コンピュータープログラミング・開発JavaScript 関連するQ&A 正規表現 半角英数字で、最初に数字が付く文字列に対してfalseを出す正規表現はどのように行えばよいのでしょうか? よろしくお願いします。 正規表現でIパスワードの作成内容をチェック PHP初心者です。 特に正規表現は、あまり良く分かりません。 単一の条件は、なんとなく分かるのですが・・・よろしくお願いします。 ユーザーに任意のパスワードを作ってもいたいのですが、あまり簡単な文字列では良くない事から、入力された文字列にチェックをかけたいです。 条件は、半角英数で6文字以上、大文字小文字は区別します。 (記号は不可) また、必ず数字と英字をどちらか2文字以上混在させたいのですが、チェックをかける時にどの様な正規表現のパターンを組めばよいのか分かりません。 教えて頂けないでしょうか、よろしくお願い致します。 正規表現 正規表現で 数値と半角記号(!#$%()~|-^@[;],./`{+*}_)が入っているというものを表現したいのですが、、、 下記のような正規表現をすると、エラーになってしまいます。何かよい方法はありませんか? ^[a-zA-Z0-9\-_!#$%()~|-^@[;],./`{+*}_]*$ 又、携帯電話のチェックをしたいのですが、 1文字以上の文字列があってというような処理にしたいのですが、何かよい方法はないでしょうか? ereg( "@docomo\.ne\.jp$", $email ) ネットワークエンジニアとは?技術職の未来を考える OKWAVE コラム PHPでメールアドレスをチェックする正規表現はどのように書いたらいいのでしょうか... PHPでメールアドレスをチェックする正規表現はどのように書いたらいいのでしょうか? ネットで検索して利用しましたがうまくいきませんでした。 例えば入力が aaa × aaa@ × aaa@s × aaa@s. × aaa@s.u ○ という正規表現が目標です もちろんRFCの基準に適応した文字列を考えています。 半角記号、半角英数字、半角英字がOKですよね・・。 教えてください。 正規表現置換 はじめまして。 現在、テキストエディタで kami987koroです。(漢字、かな、英数字、半角記号、全角記号、改行、スペースを含む文字列)ありがとうございました。 という文字列を正規表現で拾いだして、置換したいと考えています。 ただ、私がその方面の知識に疎く、どう表記すればよいのか分かりません。 そこで、この分野にお詳しい方、ご教授願えませんでしょうか? よろしくお願い致します。 正規表現 正規表現を使って、数字、大文字小文字のアルファベット、「”」(ダブルコーテーション)、「、」コンマ以外の記号を、表せる正規表現方法はどうなるのでしょうか? 見当がつきません。 どなたかお願いします。 正規表現 数字と大文字、小文字のアルファベットは入力OK。 記号も入力OK。でも、記号の中でも「”」、「.」は ダメ。しかも、10桁くらい入力できるようにする。 を表す正規表現は [a-zA-Z0-9&&[\"\.]]* と思ったのですが、 正しく表す正規表現はどの様なものになるのでしょうか? お願いします。 phpでのif文、正規表現について phpでログイン処理のプログラムを書いています。 パスワードを入力してもらいログイン処理をしようと考えています。 その際パスワードの中に英数字の大文字が1文字以上含まれていたらログイン可能、英数字いずれかに大文字が含まれていなかったらもう一度入力という処理をしたいのですがこれはif文で書けばよいのでしょうか。 また正規表現で書くべきなのでしょうか。 かなり初歩的な質問ですがよろしくお願いします。 また、数字だけのパスワードでははじくという処理をどのように書いたらいいのでしょうか。 時間があるときで良いので回答の程よろしくお願いします。 正規表現の初心者です 正規表現初心者です。 なぜ、 [0-9]+ という正規表現が下記の112にあたらないのでしょうか? 0-9(数字)の一文字以上の繰り返しなので、複数桁の数字にマッチすると思ったのですが・・。 echo 112|grep -e "[0-9]+" > (マッチせず) 正規表現 下記のような「'2009」から始まり、「0, 'http://');」 で終わる文字列を、全部半角スペースに置き換えたいと考えています。 その場合、正規表現でどのように書いたらよろしいのでしょうか。 ご教示お願いします。 '2009-07-06 16:42:53', 0, 'http://'); '2009-07-07 13:00:50', 0, 'http://'); '2009-07-07 13:02:40', 0, 'http://'); 正規表現による文字列のチェックについて 文字列の入力チェックで困っています。 入力された文字列が以下の文字のみで構成されているか、正規表現でチェックするにはどうすれば良いか教えてください。 できれば一発でチェックしたいです。 ・全角(漢字、ひらがな、かたかな)※英数字を含め、左記以外の全角は使用禁止 ・半角英数字 ・半角記号(「-」「.」「:」「*」「&」)※後から追加変更される可能性がある Java(UTF-8)とJavaScript(Shift-JIS)それぞれで対応できる方法をお願いいたします。 正規表現 英数字を1つ以上含む文字列 ASP.NET(VB)での入力チェックのために、 半角英数字「0~9」「a~z」「A~Z」と、ハイフン「-」からなる文字列 (ただし、半角英数字「0~9」「a~z」「A~Z」はそれぞれ少なくとも1個ずつ含む) の正規表現での表し方が知りたいです。 How To: ASP.NET への入力を制約するために正規表現を使用する方法 http://www.microsoft.com/japan/msdn/enterprise/pag/securityguidance/paght000001.aspx (?!^[0-9]*$)(?!^[a-zA-Z]*$)^([a-zA-Z0-9]{8,10})$ 8から10文字で、最低1文字の数字と1文字の英字を使用し、特殊文字を使用してはいけません。 上記を参考に、 (?!^[0-9]*$)(?!^[a-z]*$)(?!^[A-Z]*$)^([a-zA-Z0-9])$ こんな感じかなぁと試してみたのですが、ダメでした。 そもそも「!」の意味が分かりません。否定でしょうか?? AIは使う人の年齢や市場にも影響する?人工知能の可能性 OKWAVE コラム 正規表現 秀丸エディタ 行頭から8文字を残し後ろを 秀丸エディタで、置換えをしてます。 正規表現で、行頭から 8文字を残して、後ろの文字を全部削除させたいのですが。 行頭の8文字以外がどうしてもマッチしてくれません。 [^(^........)] [^(^.)]{8} 行頭の8文字は、数字、英字、記号です。 どうぞよろしくお願いします。 正規表現 strutsのバリデータでmaskのみで 以下の条件を正規表現を使ってあらわしたいのですが 使用可能文字 半角英数字 @ - _ . 条件 @ _ - . 同一文字の連続使用は不可。 先頭と最期は半角英数字のみ。 全部の文字数は3文字以上30文字以内。 aaa@aaa OK aaa@_-a OK aaa@@_a NG a@@@a NG @マークの連続使用不可は↓でできたのですが、 ^[a-zA-Z0-9]([a-zA-Z0-9]+@?){1,30}[a-zA-Z0-9]$ _ . - の条件を加えるとうまくいきいません。。 よい方法がございましたらご教授ください!! 正規表現で、全角文字を半角文字にする方法 エディター等で使用できる、通常の正規表現で、例えば、全角文字を半角文字にする方法はありますでしょうか? ※つまり、PerlのtrやPHPのstrtrのようなことです。 例えば、正規表現対応のエディターで、サイト全体の全角英数字を半角英数字にするような処理をしたいのですが。 正規表現を教えて下さい 「2つ目のドット"."までに、1つのドットと8文字以上の数字を含む」という正規表現で悩んでいます。 正規表現が得意な方、ヒントを頂ければ助かります。 英数字と記号の正規表現 英数字と記号の文字であればtrueを返すような判定を正規表現で行いたいです。 英数字の判定([0-9a-zA-Z])、記号([\\p{Punct}]+)の判定は個別にテストして動作したのですが、二つを組み合わせて書くようにするにはどのようにすればよいのでしょうか? 当然ですが、以下のように書くと文字列の全てがそれぞれ記号なのか、英数字なのかを判定してしまうためfalseを返してしまいます。 String str = "~!@#$%^&*()_+{}|:"<>?`-=[]\;',./1234567890abcdefgxyz"; System.out.println(str.matches("[\\p{Punct}]+") || str.matches("[0-9a-zA-Z]+")); 以上、宜しくお願いします。 正規表現について 正規表現について質問をさせていただきます。 VB6.0にて正規表現を使用し、入力された文字のチェックを行っていますが どうしてもうまくいきません。 チェックしたい文字は A(半角アルファベット大文字1文字)または AAA(半角アルファベット大文字3文字)または (AAA)(半角カッコつき半角アルファベット大文字3文字)で 上記3パターン以外はエラーとしたいと思っています。 パターンは下記のように作成したのですが "(^[\(][A-Z]{3}[\)])|(^[A-Z]{1,3})" A、AAA、(AAA)以外でもA(AA)やAAAA等も正常ケースとして通過してしまいます。 パターンをどのように作成すればよいか教えて下さい。 よろしくお願いします。 |。ってなんですか? 正規表現 正規表現の学習中です。読んでいる本の中に次の式がありました。 (?<=^|。)[^。]+。 日本語の文章の中から一文を抽出するための正規表現です。 。以外の文字がダーッと連なった後に。が来る文字列 とのことです。 [^。]は。以外の文字 +はそれが1個以上ある ですから [^。]+ は 。以外の文字が1個以上ある という意味です。 その後に。が付きますから、 [^。]+。 だけで 。以外の文字がダーッと連なった後に。が来る文字列 ということになります。 では (?<=^|。) の意味は何でしょう。 (?<=なんたら) は後方参照を意味しますから、 ^|。 のすぐ後に [^。]+ が続くと言いたいのでしょうか。 だとすると ^|。 が問題です。 ^もしくは。 という意味なら、^は正規表現で記号として使われている文字ですから、 \^|。 と表現されそうなものです。 それに、。は文末でしか利用されない文字ですから、これに注目して検索を行うというのは理解できますが、^は日本語でなんら特徴を持つ文字ではありません。 ^もしくは。 という理解は間違いでしょう。 それでは^を記号として考えるとして、その前後を[]で囲んでいないから、この^は文字列の先頭を表すのでしょうか。そうすると件の正規表現は 先頭の|。のすぐ後から。以外の文字が連なった後に。が来る文字列 という意味になります。日本語の一文を抽出する正規表現という解説にかなり近づいてはいます。 しかし |。 とは一体何? |はorを意味する記号ですが、 何とか or 。 という意味でしょうか。 でも「何とか」は「何とか」なりに何か文字表現がなされていても良さそうですし、それに 先頭の「何とか」または。のすぐ後から・・・ という解釈は意味不明。 |。 はどのように解釈すべきなのでしょうか。 お手数をお掛けします。 正規表現の置換について質問です。 javaで入力された文字の中に半角記号が含まれていた場合、文字内に存在する記号を正規表現で文字列として扱いた際に、エスケープで置換するような処理を正規表現で作成したいのですが、どのように作成すればよいでしょうか? 例:aa_bb*cc dd! よろしくお願いします。 注目のQ&A 「You」や「I」が入った曲といえば? Part2 結婚について考えていない大学生の彼氏について 関東の方に聞きたいです 大阪万博について 駅の清涼飲料水自販機 不倫の慰謝料の請求について 新型コロナウイルスがもたらした功績について教えて 旧姓を使う理由。 回復メディアの保存方法 好きな人を諦める方法 小諸市(長野県)在住でスキーやスノボをする方の用具 カテゴリ [技術者向] コンピューター プログラミング・開発 Microsoft ASPC・C++・C#CGIJavaJavaScriptPerlPHPVisual BasicHTMLXMLCSSFlashAJAXRubySwiftPythonパフォーマンス・チューニングオープンソース開発SEOスマートフォンアプリ開発その他(プログラミング・開発) カテゴリ一覧を見る OKWAVE コラム 突然のトラブル?プリンター・メール・LINE編 携帯料金を賢く見直す!格安SIMと端末選びのポイントは? 友達って必要?友情って何だろう 大震災時の現実とは?私たちができる備え 「結婚相談所は恥ずかしい」は時代遅れ!負け組の誤解と出会いの掴み方 あなたにピッタリな商品が見つかる! OKWAVE セレクト コスメ化粧品 化粧水・クレンジングなど 健康食品・サプリ コンブチャなど バス用品 入浴剤・アミノ酸シャンプーなど スマホアプリ マッチングアプリなど ヘアケア 白髪染めヘアカラーなど インターネット回線 プロバイダ、光回線など
お礼
ありがとうございます。