2012-05-13 112 views
2

我有一個包含成員標識值的數據庫。 (總是8位數字) 如果成員在薪資單上,則會在ID中添加一個「SI」前綴。具體的正則表達式函數

例如:

John: 12345678 

Jack: SI87654321 

現在我還想寫,檢查是否有「SI」在號碼開頭的函數。 (某種從數字中提取「SI」的正則表達式)

如果是 - >返回ID號(無SI),則選中YES單選按鈕。 (checked =「checked」)

如果不是 - >返回ID號,則檢查NO單選按鈕。 (檢查= 「選中」)

例如:

PHP:

$ID = get from database (for example: SI12345678) 

function check() {return $pureNumber} 

HTML:

<body> 
<?php echo $pureNumber ?><br/> 
<label for="dz1"><input type="radio" value="SI" name="davzav" id="dz1"/>YES(SI)</label> 
<label for="dz2"><input type="radio" value="" name="davzav" id="dz1"/>NO</label> 
</body> 

感謝您的幫助

回答

5

你可以只檢查前兩個字符:

if(substr($id,0,2) == "SI") { 
    $is_si = true; 
    $id = substr($id,2); 
} 
+0

看起來很棒,很簡單。那麼複選框呢?你認爲這樣可以嗎? :<?php if($ is_si == true){echo「checked ='checked'」; }?> – John

+1

這是完全正確的(雖然我個人只是把'if($ is_si)' - 與'true'比較是多餘的) –

2

你不需要正則表達式爲:如果你想用正則表達式來做到這一條線

if (0 === strncmp($userid, 'SI', 2)) { 
    echo "SI number: ", substr($userid, 2); 
} else { 
    echo "Not SI number: ", $userid; 
} 
1

,下面的代碼將返回你的電話號碼。

$result = preg_replace("/^SI/", '', $in, 1); 

然後,比較$ result值和$ in值。

if ($result != $in) { checked = "checked";}