2012-05-13 76 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";}