我想以这样一种方式验证字符串,即必须有2个超级( - )
字符串输入 :(例如)
B405Q-0123-0600
B405Q-0123-0612
R450Y-6693-11H0
R450Y-6693-11H1
答案 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
}