100分求个正则,请高手解答,谢谢。 假设有一组数字,长度未知,要求用正则判断是否为递增的数字。如有下面一组数字:1234,5687,789,01,4567891234、789、01、456789为真,5687为假。先谢了。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也不懂啊,一起学习吧!也可以去问啊资料网刊看,里面有很多的建站PHP资料,强烈推荐!http://www.wenaa.com/ 简单的方法是反过来看0123456789 是否匹配 你的这个数字!preg_match('456789','0123456789 ') <?phperror_reporting(E_ALL);$str = '1234,5687,789,01,456789';$nums = explode(',',$str);function isInc($str){ $isInc = true; if (strlen($str)>0){ for($i=1;$i<strlen($str);$i++){ if ($str[$i] > $str[$i-1]){ $isInc &= true; }else{ $isInc &= false; break; } } }else{ $isInc = false; } return $isInc;}$result = array();foreach ($nums as $num){ $result[] = array( $num, isInc($num) );}var_export($result);?>结果:array ( 0 => array ( 0 => '1234', 1 => 1, ), 1 => array ( 0 => '5687', 1 => 0, ), 2 => array ( 0 => '789', 1 => 1, ), 3 => array ( 0 => '01', 1 => 1, ), 4 => array ( 0 => '456789', 1 => 1, ),)3楼那种 1357 就不行了。 给你一种思路:<?php//特殊情况特殊处理的方法$str = '1234,5687,789,01,456789';$array = explode(',',$str);function test($str){ $standard = '0123456789'; $length = strlen($str); $first = substr($str, 0, 1); //字符串中第一个字符 $temp = substr($standard, strpos($standard,$first), $length); //return ($temp == $str) ? true : false; //如果相等则为true,为假则false if ($temp == $str) { echo "<font color=green>$str 是个连续递增的数字 </font><br />"; } else { echo "<font color=red>$str 不是个连续递增的数字 </font><br />"; }}foreach ($array as $i => $value) { test($value);}?>运行结果:1234 是个连续递增的数字5687 不是个连续递增的数字789 是个连续递增的数字01 是个连续递增的数字456789 是个连续递增的数字 PHP实用函数库 ASP表单如何向PHP页面提交值 请问改网站是怎么实现自动绑定域名的。 谁会php转asp的呀,能否帮忙转个文件? mysql只能读,不能写入。 终于脱离苦海,准备去弄个小公司大家帮我想个公司名称吧,公司域名是www.e08.com.cn Apache及php问题 (初学者) 有没有人做过大型新闻系统 PHP 4.3.1下如何安装支持GIF的GD库... 求这个正则表达式的写法 这个怎样提交表单内容 我是菜鸟,大哥大姐快来,问个str_replace替换的问题
error_reporting(E_ALL);
$str = '1234,5687,789,01,456789';
$nums = explode(',',$str);function isInc($str){
$isInc = true;
if (strlen($str)>0){
for($i=1;$i<strlen($str);$i++){
if ($str[$i] > $str[$i-1]){
$isInc &= true;
}else{
$isInc &= false;
break;
}
}
}else{
$isInc = false;
}
return $isInc;
}
$result = array();
foreach ($nums as $num){
$result[] = array(
$num,
isInc($num)
);
}
var_export($result);
?>
结果:array (
0 =>
array (
0 => '1234',
1 => 1,
),
1 =>
array (
0 => '5687',
1 => 0,
),
2 =>
array (
0 => '789',
1 => 1,
),
3 =>
array (
0 => '01',
1 => 1,
),
4 =>
array (
0 => '456789',
1 => 1,
),
)
3楼那种 1357 就不行了。
<?php
//特殊情况特殊处理的方法$str = '1234,5687,789,01,456789';$array = explode(',',$str);
function test($str){
$standard = '0123456789';
$length = strlen($str);
$first = substr($str, 0, 1); //字符串中第一个字符
$temp = substr($standard, strpos($standard,$first), $length); //return ($temp == $str) ? true : false; //如果相等则为true,为假则false
if ($temp == $str)
{
echo "<font color=green>$str 是个连续递增的数字 </font><br />";
}
else
{
echo "<font color=red>$str 不是个连续递增的数字 </font><br />";
}
}foreach ($array as $i => $value) {
test($value);
}
?>
运行结果:
1234 是个连续递增的数字
5687 不是个连续递增的数字
789 是个连续递增的数字
01 是个连续递增的数字
456789 是个连续递增的数字