一般的な正規表現(転載)

30571 ワード

この20個の正規表現を知っています.コードを1,000行少なく書くことができます.
文字数1653 
読みます 
コメント188 
好きです
正規表現は、非常に古くて強力な文書処理ツールで、非常に短い表現文を使うだけで、非常に複雑な業務ロジックを迅速に実現することができます.正規表現を上手に使いこなせば、あなたの開発効率は大きく向上します.
正規表現はよくフィールドまたは任意の文字列のチェックに使われます.たとえば、以下のように、基本的な日付書式のJavaScriptコードをチェックします.
var reg = /^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/; 
var r = fieldValue.match(reg);             
if(r==null)alert('Date format error!');
技術者が整理した、先端開発でよく使われる20の正規表現です.
1.パスワードの強度を確認する
パスワードの強度は、大文字と小文字と数字の組み合わせでなければなりません.特殊文字は使えません.長さは8-10の間です.
^(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$
2.中国語を検証する
文字列は中国語のみ可能です.
^[\u4e00-\u9fa5]{0,}$
3.数字、26文字、またはアンダースコアからなる文字列
^\w+$
4.E-Mailアドレスを検証する
パスワードと同じように、E-mailアドレスのコンプライアンスチェックステートメントです.
[\w!#$%&'*+/=?^_`{|}~-]+(?:\.[\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\w](?:[\w-]*[\w])?\.)+[\w](?:[\w-]*[\w])?
5.身分証番号を確認する
以下は身分証番号の正則検査です.15または18桁です
15桁:
^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$
18桁:
^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$
6.検証日付
「yyy-mm-dd」形式の日付チェックは、うるう年を考慮しています.
^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$
7.検証金額
金額は2桁の小数点まで正確にチェックします.
^[0-9]+(.[0-9]{2})?$
8.携帯番号を確認する
以下は国内13、15、18で始まる携帯電話番号の正規表現です.
^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$
9.判断IEのバージョン
IEはまだ完全に代替されていません.多くのページではまだバージョン互換性が必要です.以下はIEバージョンの検査式です.
^.*MSIE [5-8](?:\.[0-9]+)?(?!.*Trident\/[5-9]\.0).*$
10.IP-v 4アドレスを検証する
IP 4正則文
\b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
11.IP-v 6アドレスを検証する
IP 6正則文
(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))
12.URLをチェックするプレフィックス
アプリケーション開発では、HTTPSかHTTPかを区別する必要がある場合が多く、次の式でurlのプレフィクスを取り出して論理的に判断することができます.
if (!s.match(/^[a-zA-Z]+:\/\//))
{
    s = 'http://' + s;
}
13.URLリンク抽出
下記の表式はテキストのURLを絞り込むことができます.
^(f|ht){1}(tp|tps):\/\/([\w-]+\.)+[\w-]+(\/[\w- ./?%&=]*)?
14.ファイルパスと拡張子検証
windows下のファイルパスと拡張子を検証します.(以下の例では.txtファイル)
^([a-zA-Z]\:|\\)\\([^\\]+\\)*[^\/:*?"<>|]+\.txt(l)?$
15.Color Hex Codesを抽出する
ウェブページの色コードを抽出する必要がある場合があります.下記の表式が使えます.
^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$
16.ウェブページの画像を抽出する
ウェブページの画像情報をすべて抽出したいなら、下記の表式を利用してもいいです.
\< *[img][^\\>]*[src] *= *[\"\']{0,1}([^\"\'\ >]*)
17.ページハイパーリンクの抽出
htmlのハイパーリンクを抽出します.
(\\s*(?*\brel=)*(href=「https?/」(?///)((?))「(?:(?:???)'.implode(''?)?'、'、'、フォロwulist.')」+「(^*)」((*))))/"((^*)(*))/''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
18.CSS属性の検索
下記の表式により、該当するCSS属性を検索できます.
^\s*[a-zA-Z\-]+\s*[:]{1}\s[a-zA-Z0-9\s.#]+[;]{1}
19.コメント抽出
HMTLのコメントを削除する必要がある場合は、以下のような表現が使えます.
20.HTMLタグのマッチング
以下の表式によってHTMLのタグの属性が一致します.
<\/?\w+((\s+\w+(\s*=\s*(?:".*?"|'.*?'|[\^'">\s]+))?)+\s*|\s*)\/?>