ホームページ  >  記事  >  バックエンド開発  >  正規表現についての質問です。桁数に1を書けば一致しますが、桁数に1を書けば一致しません。

正規表現についての質問です。桁数に1を書けば一致しますが、桁数に1を書けば一致しません。

WBOY
WBOYオリジナル
2016-06-13 12:52:29996ブラウズ

正規表現についての質問です。数字の数に1を書くと一致しますが、1より大きい数字を書くと一致しません。
通常のルールは次のとおりです:

<br />
$patten='/^[1-9]\d{5}[1-2]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/';//就是最后这个4<br />


最後の4を1に変更すると一致しますが、1より大きい値に変更すると機能しません

この正規表現は、ID カード番号を照合するために使用することを目的としています。ヒーローがこの正規表現を持っている場合は、それを共有して学習していただければ幸いです。15 桁と 18 桁の正規表現と互換性があります。


-----解決策--------------------------------
1. ID 番号の意味:
世代 (現在は削除されており、判断する必要はありません)
市外局番(6桁) 誕生年(2桁) 誕生月(2桁) 生年月日(2桁) シリアルナンバー(3桁) 合計15桁
二代目
市外局番(6桁) 誕生年(4桁) 誕生月(2桁) 生年月日(2桁) シリアルナンバー(3桁) チェックデジット(1桁) 合計18桁
チェックデジットは X
である可能性があります 2.桁数が正しいか判断するだけの簡単判定
/^d{15}(?:d{2}[dX])?$/
3. 正確な判定(第二世代)はチェックコード生成アルゴリズムを使用する必要があります。各国言語の「IDカード認証コード生成機能」はオンラインでご覧いただけます

-----解決策--------------- -----
validateidnumber( "22111111111234563" );

文字列や数値の使用は範囲外です
本来、ID 番号は文字列
である必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。