我的项目中有很多头条新闻:
00.00.2014 - Headline Description e.t.c.
我想用php检查给定的字符串是否包含前面的格式00.00.0000 -
。 -
之后的部分并不重要。
有人可以通过以下方式帮助我:
$format = '00.00.0000 -';
if ($string MATCHES $format IN FRONT) {
// ...some code...
}
答案 0 :(得分:3)
这应该有效:
if (preg_match("/^\d{2}\.\d{2}\.\d{4}\s\-\s.*$/", $string) === 1) {
// $string matches!
}
说明:
^
是"字符串" \d
是任何数字(0,1,2,...,9){n}
表示"重复n次" \.
是一个点\s
是一个空格\-
是减号.
是"任何单个字符" *
表示"重复0次或更多次$
表示"字符串结尾" 答案 1 :(得分:2)
我没有开发环境来测试这个,但我会给你一些伪代码:
我不确定上下文,但您可以在任何给定的STRING上测试此函数:
功能:
Boolean hasCorrectFormat($myString){
//Here take the string and cut it into a char array.
$charArray = str_split($myString);
//This will give you a char array. Compare the first 12 elements of this
//array to see if they are correct. If its supposed to be number make
//sure it is, if its supposed to be a "." make sure it is..etc
//"00.00.0000 -" is 12 characters.
if(!isNumeric(charArray[0])){
return false;
}
else if(!isNumeric(charArray[1])){
return false;
}
else if(charArray[2] != "."){
return false;
}
//so on and so forth.....
else {return true}
}
就像我说我无法测试这一点,我几乎可以保证你这个代码不会运行。这应该给你所涉及的逻辑。
编辑:我也写了这个假设你不是字面意思是“00.00.0000”而是“xx.xx.xxxx”x是任何数字0-9。如果你需要确保它字面上是零,那么只需将你的字符串剪成前十个字符并进行比较。
答案 2 :(得分:0)
使用strpos
功能。像这样:
if (strpos($string,'00.00.0000 -') !== true) {
//some code
}