请教高手,这个怎么理解? 本帖最后由 xbdragon0813 于 2011-09-22 13:58:35 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 for($i=0;$i<strlen($str);$i++){ //对字符串每一位进行检查 $test=ord(substr($str,$i,1));//取到当前字符的ASCII码值 if(($test<0x2D))//允许 !~#¥&*()—+这些字符 ($test>0x2D)&&($test<0x30)//允许 . 、这些字符 ($test>0x39)&&($test<0x41)//允许 = < > ?等这些符号 ($test>0x5A)&&($test<0x5F) //允许[ ],^这些字符 ($test>0x5F)&&($test<0x61)//允许 `这个字符(esc下面那个) ($test>0x7A)&&($test<0xa0)//允许{ }~和中文字符 如果符合上述任何一种情况视为合法的。就把当前标志位置为1,继续判断下一个字符.否则置为0且跳出循环不用继续判断;当所有字符都是合法的情况下,视为字符串是合法的。感觉代码应该是if(($test<0x2D)||(($test>0x2D)&&($test<0x30))||(($test>0x39)&&($test<0x41))||(($test>0x5A)&&($test<0x5F))||(($test>0x5F)&&($test<0x61))||(($test>0x7A)&&($test<0xa0))) { $okflag = 1; continue; } else { $okflag = 0; break; } [a-zA-Z\xa0-\xff_]小写大写英文,或者中文,或者下划线开头[0-9a-zA-Z\xa0-\xff_]后面的内容可以是小写大写中文数字下划线[0-9a-zA-Z\xa0-\xff_]{3,9}后面的内容重复3-9次所以整个正则表达式为[a-zA-Z\xa0-\xff_][0-9a-zA-Z\xa0-\xff_]{3,9}也可以加上开头结尾锚记^[a-zA-Z\xa0-\xff_][0-9a-zA-Z\xa0-\xff_]{3,9}$ for($i=0;$i<strlen($str);$i++){ //对字符串每一位进行检查 $test=ord(substr($str,$i,1));//取到当前字符的ASCII码值 if(($test<0x2D))//允许 !~#¥&*()—+这些字符 ($test>0x2D)&&($test<0x30)//允许 . 、这些字符 这段代码应该怎么用?????????? 想实现POST自动提交表单的功能,我用PHP做了一下,但不对,大家帮帮我看看 求帮忙 数据以二进制的形式保存到数据库中要怎么把它显示出来? PHPExcel 乱码 小弟要搞一个移动短信项目,请求帮忙! 如何写这个SQL语句 关于魔术引号的问题 怎么处理复选框? php4.04+apache+oracle8.16 的问题 文本计数器(不是图片显示)怎样调用 <img src="http://xxxx.51.net/cgi-bin/count.php"> 为什么不行?谢谢。 原有的项目上新增个单独的页面调用原项目的数据库出错··急 验证码的问题 想做一个在线考试系统,请教一下大家历史试卷存储方案
$test=ord(substr($str,$i,1));//取到当前字符的ASCII码值
if(($test<0x2D))//允许 !~#¥&*()—+这些字符
($test>0x2D)&&($test<0x30)//允许 . 、这些字符
($test>0x39)&&($test<0x41)//允许 = < > ?等这些符号 ($test>0x5A)&&($test<0x5F) //允许[ ],^这些字符
($test>0x5F)&&($test<0x61)//允许 `这个字符(esc下面那个)
($test>0x7A)&&($test<0xa0)//允许{ }~和中文字符
如果符合上述任何一种情况视为合法的。就把当前标志位置为1,继续判断下一个字符.否则置为0且跳出循环不用继续判断;
当所有字符都是合法的情况下,视为字符串是合法的。感觉代码应该是if(($test<0x2D)||(($test>0x2D)&&($test<0x30))||(($test>0x39)&&($test<0x41))||(($test>0x5A)&&($test<0x5F))||(($test>0x5F)&&($test<0x61))||(($test>0x7A)&&($test<0xa0)))
{
$okflag = 1;
continue;
}
else
{
$okflag = 0;
break;
}
[0-9a-zA-Z\xa0-\xff_]后面的内容可以是小写大写中文数字下划线
[0-9a-zA-Z\xa0-\xff_]{3,9}后面的内容重复3-9次所以整个正则表达式为[a-zA-Z\xa0-\xff_][0-9a-zA-Z\xa0-\xff_]{3,9}
也可以加上开头结尾锚记^[a-zA-Z\xa0-\xff_][0-9a-zA-Z\xa0-\xff_]{3,9}$
$test=ord(substr($str,$i,1));//取到当前字符的ASCII码值
if(($test<0x2D))//允许 !~#¥&*()—+这些字符
($test>0x2D)&&($test<0x30)//允许 . 、这些字符
这段代码应该怎么用??????????