我如何计算字符串中的char并使用PHP进行验证

时间:2015-06-08 05:45:21

标签: php regex

我想以这样一种方式验证字符串,即必须有2个超级( - )

字符串输入 :(例如)

B405Q-0123-0600

B405Q-0123-0612

R450Y-6693-11H0

R450Y-6693-11H1

6 个答案:

答案 0 :(得分:3)

使用substr_count这样的功能

<?php
 echo substr_count( "B405Q-0123-0600", "-" )."\n";
 echo substr_count( "B405Q01230600", "-" )."\n";
?>

会结果

2
0

像这样验证

if(substr_count( $some_string, "-" ) == 2)
{
       echo 'true';
       // do something here
}else
{
       echo 'false validation failed';
       // some error handling
}

答案 1 :(得分:2)

如果您的字符串如图所示,那么您可以

$re = "/(\\w{5}-\\w{4}-\\w{4})/"; 
$str = "B405Q-0123-0600"; // Your strings
if (preg_match($re, $str, $matches)) {
   // valid
} else {
   // invalid
}
  

我只需要检查字符串是否有两个连字符

如果您只想检查是否有两个连字符,那么您可以在连字符上拆分字符串。如果有两个且只有两个连字符,则会有3个分割部分。

$str = "B405Q-0123-0600"; // your strings
if (count(split("-", $str)) === 3) {
   // two hyphens present
} else {
   // not enough hyphens
}

答案 2 :(得分:1)

要检查此类验证,您需要使用javascript的正则表达式。使用下面的正则表达式。

var check="^\w+([\s\-]\w+){0,2}$";

现在所有人都需要通过创建javascript函数来检查这一点,并且你已经完成了一半。

答案 3 :(得分:0)

试试这个:

var str = "B405Q-0123-0612";
var arr = str.split("-");

if(arr.length=3){
    alert("Your string contain 2 hyphens");
}

答案 4 :(得分:0)

使用以下代码

  $string = "B405Q-0123-0612";

    $arr = explode("-",$string)

    if (count($arr) == 2)
    {
        //yes you have 2 hyphens
    }

以上程序是最简单的方法

答案 5 :(得分:0)

preg_match_all("/\-/",'B405Q-0123-0600',$match);
if(count($match[0]) == 2){
  // valid
}else{
  // invalid
}