我有两个单选按钮连接到控制用户想要的搜索类型的搜索字段。
一个用于常规关键字搜索,另一个用于车牌搜索。
“关键字”单选按钮是预先选择的,但是当检测到车牌模式时,如果可能的话,我希望使用 jQuery 将它自动切换到“车牌”......
车牌图案总是以两个字母 (AZ) 开头,后跟五个数字 (0-9),如下所示:“AZ12345”。可能用这样的空格分隔:“ZA 98765”。
形式方法是_GET
。
按照您的说明,您可以使用此模式来检测车牌
[A-Za-z]{2}\s?\d{5}
如果您只想匹配印版(例如不是 liasdjfaAG 00212lkfla) ,请^[A-Za-z]{2}\s?\d{5}$
改用。
您可以使用 textchanged 事件(查看此答案),然后如果模式匹配,您可以更改单选按钮的“已检查”状态。
编辑:
在jsfiddle中实现,基本上代码是这样的
var rege = /^[A-Za-z]{2}\s?\d{5}$/;
$('#inpt').keyup(function(event) {
if (rege.test($('#inpt').val())) {
$('#plate').attr('checked', true);
} else {
$('#nonplate').attr('checked', true);
}
});
使用这样的html:
<input type="text" id="inpt"/><br/>
<input type="radio" name="group1" id="plate" value="Plate"> Plate<br>
<input type="radio" name="group1" id="nonplate" value="NotPlate"> Not Plate
编辑2:
应您的要求,我建议您阅读此问题。基本上,setInterval()
您可以每 1 或 2 秒检查一次输入的状态,以选择正确的单选按钮。您也可以缩短此间隔(将其设置为 ~100 毫秒)
我相信你需要的是这样的:
function checkPlate($s) {
$match = false;
$s = strtoupper($s);
$s = str_replace(" ","",$s);
if (strlen($s) == 7) {
preg_match(/[A-Z]{2}[0-9]{5}/, $s, $matches);
if (count($matches) == 1) {$match = true;}
}
return $match;
}