【问题标题】:How do I validate multiple patterns?如何验证多个模式?
【发布时间】:2016-04-16 05:33:10
【问题描述】:

我有一个将其值发送到 PHP 脚本的表单元素。这个值需要验证,它可以分为 5 个不同的集合,

x stands for digits 0-9

第 1 组:ABxxTXxx

第 2 组:ABxxTXAxxx

第 3 组:ABCxxx

第 4 组:Axxx

第 5 组:xxx

这可以吗?有没有我可以使用的库?

【问题讨论】:

  • 在正则表达式中使用交替创建不同的模式
  • @rock321987 你能详细说明一下吗?
  • 你应该开始阅读正则表达式..你读过正则表达式了吗?
  • 我现在什么都没做,只是想知道如何开始使用它。而且我知道如何为每种模式编写正则表达式。需要知道如何将它们组合在一起。
  • 使用交替(OR),你可以做到..它由|..表示虽然我已经写过:-regex101.com/r/xU9nK1/2

标签: javascript php regex validation


【解决方案1】:

很抱歉我的上述帖子,因为我仍然无法对问题添加评论。

你好,

编写 5 个不同的正则表达式匹配上面给出的 5 个模式 函数字段检查(){

var re1=/AB\d\dTX\d\d$/;
var re2=/AB\d\dTXA\d\d$/;
var re3=/ABC\d{3}$/;
var re4=/A\d{3}$/;
var re5=/\d{3}$/;
var field= form.field.value;

if(re1.test(field) ||re2.test(field) ||re3.test(field) ||re4.test(field) ||re5.test(field) ){
alert("Test success");
return true;
}else{
alert("test failed");
}
}

【讨论】:

    【解决方案2】:

    您可以使用此代码:

    function validate($value){
    
    
    
        if(preg_match("/AB[\\w]{2}TX[\\w]{2}/", $value, $matches))
        {
            return 1;
        }
        elseif(preg_match("/AB[\\w]{2}TXA[\\w]{3}/", $value, $matches))
        {
            return 2;
        }
        elseif(preg_match("/ABC[\\w]{3}/", $value, $matches))
        {
            return 3;
        }
        elseif(preg_match("/A[\\w]{3}/", $value, $matches))
        {
            return 4;
        }
        elseif(preg_match("/[\\w]{3}/", $value, $matches))
        {
            return 5;
        }
        else
        {
            return 6;
        }
    
    }
    
    
    $str = "ABxxTXxx";
    var_dump(validate($str));
    

    【讨论】:

      猜你喜欢
      • 2016-12-19
      • 1970-01-01
      • 2011-03-10
      • 2011-11-14
      • 1970-01-01
      • 2020-07-01
      • 2020-11-29
      • 2014-06-10
      • 2011-02-07
      相关资源
      最近更新 更多