2013-06-21 159 views
-1

我需要SSN的正則表達式滿足以下condion。正則表達式使用正則表達式的SSN

  1. 不能使用或位置接受666 1-3
  2. 不能使用或位置接受000 1-3
  3. 不能使用或接受位置00 4-5
  4. 不能使用或接受0000在職位6-9
  5. 如果SSN以9開頭忽略所有其他條件。

預先感謝

+0

你使用什麼樣的正則表達式? – HamZa

回答

1

說明

此正則表達式將:

  • 驗證串是9位數字長
  • 如果第一個數字是不是9然後檢查以下
    • 防止位置1,2,一個d 3是從所有6
    • 防止位置1,2和3被所有0
    • 防止4位和5被所有0
    • 防止位置6,7,8和9被所有0

^(?:(?=[0-8])(?!666|000|.{3}00|.{5}0000)|(?=9))\d{9}(?:\r|\n|\Z)

enter image description here

PHP代碼示例

你沒有指定一個語言,所以我包括這個PHP例子來說明表達是如何工作的

輸入文本

000000000 
000111111 
111001111 
111111111 
222222222 
333333333 
444444444 
555555555 
666666666 
666777777 
777777777 
888888888 
999999999 
123456789 
123004567 
123450000 
923004567 
923450000 

代碼

<?php 
$sourcestring="your source string"; 
preg_match_all('/^(?:(?=[0-8])(?!666|000|.{3}00|.{5}0000)|(?=9))\d{9}(?:\r|\n|\Z)/im',$sourcestring,$matches); 
echo "<pre>".print_r($matches,true); 
?> 

比賽

$matches Array: 
(
    [0] => Array 
     (
      [0] => 111111111 
      [1] => 222222222 
      [2] => 333333333 
      [3] => 444444444 
      [4] => 555555555 
      [5] => 777777777 
      [6] => 888888888 
      [7] => 999999999 
      [8] => 123456789 
      [9] => 923004567 
      [10] => 923450000 
     ) 

) 
相關問題