abc') // ["
abc", "div"]
Thisこのテスト ステートメントは、テキスト コンテンツを含むタグを抽出するために作成されています。厳密に一致させたい場合は、次のように再度変更できます。
var rtag = /^<([a-z ] )s*/?> ( ?:1>)?$/i // 真ん中を削除 .*
この規則の適用範囲は単純なタグの一致と抽出に限定されており、一致することはできませんネストされたタグ。
の正規のマッチング先頭と末尾の空白文字 式
まず、インターネット上で流通しているバージョンについて説明します。
^s*|s*$
は行頭と行末の空白文字を削除できます。例:
' t nr abc t nr '.replace( /^s*|s*$/g, '' ) // abc
ただし、s* を使用すると、文字列の先頭に s があるかどうかを判断できません。または終了、例:
/^s *|s*$/.test( 'abc' ) // true
次のように修正します:
^s |s $
' t nr abc t nr '.replace( /^s |s $/ g, '' ) // abc
/^s |s $/.test( 'abc' ) // false
電子メール アドレスに一致する正規表現
最初Email のルールを導入します: local-part@domain
local-part の最大長は 64、ドメインの最大長は 253、最大長は 256 です
Local-part は任意の ASCII を使用できます文字:
大文字と小文字の英字 a-z、A-Z
数字 0-9
文字!#$%&'* -/=?^_`{|}~
文字. 最初と最後にすることはできません。また、2 回続けて指定することはできません
ただし、一部のメールサーバーでは、特殊文字を含むメールアドレスは拒否されます
ドメイン(ドメイン名)は、英字 26 文字、数字 10 文字までに制限されます。ハイフン -
ハイフン - 最初の文字にすることはできません
トップレベル ドメイン名 (com、cn など) 長さは 2 ~ 6 文字です
まず、インターネット上で流通しているバージョンについて説明します:
w ([- .]w )*@w ([-.]w )*.w ([- .]w )*
() 不可解なグループ化、録画せずにグループ化するだけなら、 use (?:)
@w ドメインにはアンダースコア_
w ([-.]w )* を含めることはできません。 トップレベル ドメイン名はルール
に準拠していないため、次のように修正されます:
var remail = /^([w-_] (?:.[w-_] )*)@((?:[a-z0-9] (? :-[a-zA-Z0-9] )*) .[a-z]{2,6})$/i
remail.exec( 'nuysoft@gmail.com' ) // "nuysoft@gmail.com ", "nuysoft", "gmail.com"]
remail.exec( 'nuysoft@gmail.comcomcom' ) // null
remail.exec( 'nuysoft@_gmail.com ) // null
改訂された正規表現には次の制限があります。
中国語のメールボックスと中国語のドメイン名をサポートします。サポートしない理由は、私の個人的な好みとそのような派手なものが嫌いだからです
特殊な記号をサポートしません。メールサーバー以外の拒否を回避します。必要に応じて追加できます。
参考記事:
http://en.wikipedia.org/wiki/Email_address
http://baike.baidu.com/view/119298.htm
URL に一致する正規表現
まず、インターネット上で流通しているバージョンについて話しましょう:
[a-zA-z] ://[^s]*
大まかに、 URL 内の各ブロックはグループ化されていません
修正は次のとおりです (インターネット上で出回っている別のバージョン):
var _url = "^((https|http|ftp|rtsp|mms)?://) ?" / /
"(([0-9a-z_!~*'().&= $%-] : )?[0-9a-z_!~*'().&= $%- ] @) ?" // ftp user@
"(([0-9]{1,3}.){3}[0-9]{1,3}" // IP 形式の URL-199.194 .52.184
"|" // IP と DOMAIN (ドメイン名) を許可します
"([0-9a-z_!~*'()-] .)*" // ドメイン名 - www. > "([ 0-9a-z][0-9a-z-]{0,61})?[0-9a-z]." // 第 2 レベル ドメイン名
"[a-z]{2 ,6})" // 第一レベルのドメイン - .com または .museum
"(:[0-9]{1,4})?" // ポート - :80
"((/?) |" // ファイル名がない場合はスラッシュは必要ありません
"(/[0-9a-z_!~*'().;?:@&= $,%#-] ) /? )$";
var rurl = new RegExp( _url, 'i' );
テスト:
rurl.exec( 'baidu.com' ) // ["baidu.com",未定義、未定義、未定義、未定義、「baidu.com」、未定義、「baid」、未定義、未定義、「」、「」、未定義]
rurl.exec( 'http://baidu.com' ) / /
rurl.exec( 'http://www.baidu.com' ) // ["http://baidu.com", "http://", "http", 未定義, 未定義, "baidu .com", unknown, "baid", unknown, unknown, "", "", unknown]
rurl.test( 'baidu' ) // true
でも使いやすそうですTODOを学ぶ必要があります。
は一致していますかアカウントの法的
まず、インターネット上で流通しているバージョンについて話しましょう:
^[a-zA-Z][a-zA-Z0-9_]{4,15}$
(Starting文字、5 ~ 16 文字のセクション、英数字のアンダースコアを使用できます)
制限は文字で始める必要があります。たとえば、QQ ログイン プラットフォーム
制限はアンダースコアで始めることはできません。たとえば、Baidu では許可されているので簡単です。
var ruser = /w{4,16}/
国内の電話番号と一致
オンラインで流通しているバージョン非常に便利です:
d{3}-d{8}|d{4}-d{7}
コメント: 一致する形式は 0511-4405222 または 021-87888822 などです
Tencent QQ アカウントと一致します
インターネット上で流通しているバージョンは非常に便利です:
[1-9][0-9]{4,}
コメント: Tencent QQ 番号は 10000 から始まります
中国の郵便番号と一致します
バージョンインターネット上で流通している情報は非常に便利です:
[1-9]d{5}(?!d)
コメント: 中国の郵便番号は 6 桁の数字です
コードをコピー コードは次のとおりです:
一致 ID カード
まず、インターネット上で流通しているバージョンについて話しましょう:
d{15}|d{18}
d{15}
d{ 18} はい判定ですが、少し大雑把です
ID カードからは住所、誕生日、性別などが解析できるので、特別に説明します:
ID カードのルール
中国の ID カードは 15 桁 (第 1 世代) または 18 桁 (第 2 世代) ですが、違いは、第 2 世代の証明書は第 1 世代の証明書の 7 桁の前に 19 を追加するだけで、最後に検証コードを追加することです
15 をアップグレードします桁を 18 桁に変換し、18 桁の数字の構成 (住所、誕生日、性別) を解析します。
コードは次のとおりです。
function parseID(ID) {
if ( ID.length == 15 ) {
// 18 ビットにアップグレード
ID = ID.substr( 0, 6 ) "19" ID.substr( 6 );
// 最初の 17 桁に対応する係数
var Rank = [
「7」、「9」、「10」、「5」、「8」、「4」、「2」、「1」、「6」、「3」、「7」、「9」 ", "10", "5", "8", "4" , "2"
];
// 最初の 17 は、17 で加重除算した余りに対応する最後の ID 番号です
var last = [
"1", "0", "X", "9", "8", "7", "6", "5", "4", "3", "2 "
];
// 加重合計
for ( var i = 0, sum = 0, len = ID.length; i sum = ID[ i ] * Rank[ i ]; // 最後の桁を追加します
ID = last[ sum % 11 ];
if ( ID.length != 18 ) return null; >var match =rid.exec( ID );
return match ? {
ID : ID,
area : match[ 1 ],
y : match[ 2 ],
m : match[ 3 ],
d : match[ 4 ],
sex : match[ 5 ] % 2
} : null;
}
制限事項:
アドレスコードはコードを実際のアドレスに変換するには、Du Niang に問い合わせてください。
返されるオブジェクトの性別は 1 (男性) または 0 (女性) であり、ページ表示に必要な場合は、性別 "男性" : "女性" テスト:
console.info( parseID( "142327840821047" ) );
console.info( parseID("142327198408210470" ) );
参照:
http://baike.baidu。 com/view/118340 .htm#1
コードをコピー
コードは次のとおりです: IP アドレスの一致 まず、インターネット上で流通しているバージョンについて説明します。
d .d .d .d d 数に制限はありません
修正は次のとおりです:
var rip = /^(?:( ?:[01]?d{1,2}|2[0-4]d|25[0-5]).){3 }(?:[01]?d{1,2}|2[0 -4]d|25[0-5])$/;
rip.test( "192.168.1.1" ) // true
rip.test( "0.0.0.0" ) // true
rip.test( "255.255.255.255" ) // true
rip.test( "256.255.255.255" ) // false
さらにグループ化を増やします:
var rip2 = /^([01]?d {1,2}|2[0-4]d|25[0-5]).([01]?d{1, 2}|2[0-4]d|25[0-5]) ([01]?d{1,2}|2[0-4]d|25[0-5])。([01] ]?d{1,2}|2[0-4]d|25[0-5])$/;
rip2.exec( "192.168.1.1" ) // ["192.168.1.1", " 192", "168", "1", "1"]
rip2 .exec( "0.0.0.0" ) // ["0.0.0.0", "0", "0", "0", " 0"]
rip2.exec( "255.255.255.255" ) // [ "255.255.255.255", "255", "255", "255", "255"]
rip2.exec( "256.255 .255.255" ) // null