2

我有一个包含成员 ID 值的数据库。(总是 8 位长)如果成员在工资单上,则 ID 中会添加一个“SI”前缀。

例如:

John: 12345678

Jack: SI87654321

现在我想编写一个函数来检查数字开头是否有“SI”。(某种从数字中提取“SI”的正则表达式)

如果是 -> 返回 ID 号(没有 SI),则选中 YES 单选按钮。(检查=“检查”)

如果不是 -> 返回 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>

谢谢你的帮助

4

3 回答 3

5

您可以只检查前两个字符:

if( substr($id,0,2) == "SI") {
    $is_si = true;
    $id = substr($id,2);
}
于 2012-05-13T16:20:00.293 回答
2

您不需要正则表达式:

if (0 === strncmp($userid, 'SI', 2)) {
    echo "SI number: ", substr($userid, 2);
} else {
    echo "Not SI number: ", $userid;
}
于 2012-05-13T16:21:18.810 回答
1

如果您想用正则表达式在一行中执行此操作,以下代码将返回您的号码。

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

然后,将 $result 值与 $in 值进行比较。

if ($result != $in) { checked = "checked";}
于 2012-05-13T16:39:23.443 回答