Php 检测文本字段中的特定模式,然后在两个单选按钮之间切换

Php 检测文本字段中的特定模式,然后在两个单选按钮之间切换,php,jquery,regex,search,Php,Jquery,Regex,Search,我有两个单选按钮连接到一个搜索字段,用于控制用户想要的搜索类型。 一个用于常规关键字搜索,另一个用于车牌搜索 “关键字”单选按钮是预先选择的,但当检测到车牌图案时,如果可能的话,我希望使用jQuery将其自动切换到“车牌” 车牌图案始终以两个字母(A-Z)开头,然后是五个数字(0-9),如:“AZ12345”。可能与这样的空间分隔:“ZA98765” 表单方法是\u GET按照说明,您可以使用此模式检测车牌 [A-Za-z]{2}\s?\d{5} 如果您只想匹配板材(例如不匹配liasdjf

我有两个单选按钮连接到一个搜索字段,用于控制用户想要的搜索类型。
一个用于常规关键字搜索,另一个用于车牌搜索

“关键字”单选按钮是预先选择的,但当检测到车牌图案时,如果可能的话,我希望使用jQuery将其自动切换到“车牌”

车牌图案始终以两个字母(A-Z)开头,然后是五个数字(0-9),如:“AZ12345”。可能与这样的空间分隔:“ZA98765”


表单方法是
\u GET

按照说明,您可以使用此模式检测车牌

 [A-Za-z]{2}\s?\d{5}
如果您只想匹配板材(例如不匹配liasdjfaAG 00212lkfla),请使用
^[A-Za-z]{2}\s?\d{5}$

您可以使用textchanged事件(查看答案),然后如果模式匹配,您可以更改单选按钮的“选中”状态

编辑:

在中实现,代码基本上如下所示

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 ms)

按照说明,您可以使用此模式检测车牌

 [A-Za-z]{2}\s?\d{5}
如果您只想匹配板材(例如不匹配liasdjfaAG 00212lkfla),请使用
^[A-Za-z]{2}\s?\d{5}$

您可以使用textchanged事件(查看答案),然后如果模式匹配,您可以更改单选按钮的“选中”状态

编辑:

在中实现,代码基本上如下所示

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 ms)

我相信您需要的是:

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;
}

我相信你需要的是:

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;
}

您希望它发生在客户端(javascript)还是服务器端(PHP)?请选择,并向我们显示相关的标记您希望它发生在客户端-(javascript)还是服务器端(PHP)?请选择,并向我们显示未获得的相关标记。如何将表达式与jquery一起使用?尝试
if($('#Search').val().match('^[A-Za-z]{2}\s?\d{5}$'){//如果有匹配项,则选中许可证牌单选按钮}
…我编辑了我的问题,但是如果您需要更精确的答案,请使用文本输入和单选按钮发布您的html代码,我认为它会起作用:)当我复制/粘贴时,它不会注册文本。还有什么办法可以检查吗?我不明白。如何将表达式与jquery一起使用?尝试
if($('#Search').val().match('^[A-Za-z]{2}\s?\d{5}$'){//如果有匹配项,则选中许可证牌单选按钮}
…我编辑了我的问题,但是如果您需要更精确的答案,请使用文本输入和单选按钮发布您的html代码,我认为它会起作用:)当我复制/粘贴时,它不会注册文本。有没有办法检查一下呢?