PHP验证类

分享一份封装好的PHP验证类,方便使用

class VerifyAction{
/**
* 是否为空值
*/
public static function isEmpty($str){
$str = trim($str);
return !empty($str) ? true : false;
}
/**
* 数字验证
* param:$flag : int是否是整数,float是否是浮点型
*/
public static function isNum($str,$flag = ‘float’){
if(!self::isEmpty($str)) return false;
if(strtolower($flag) == ‘int’){
return ((string)(int)$str === (string)$str) ? true : false;
}else{
return ((string)(float)$str === (string)$str) ? true : false;
}
}
/**
* 名称匹配,如用户名,目录名等
* @param:string $str 要匹配的字符串
* @param:$chinese 是否支持中文,默认支持,如果是匹配文件名,建议关闭此项(false)
* @param:$charset 编码(默认utf-8,支持gb2312)
*/
public static function isName($str,$chinese = true,$charset = ‘utf-8’){
if(!self::isEmpty($str)) return false;
if($chinese){
$match = (strtolower($charset) == ‘gb2312’) ? “/^[“.chr(0xa1).”-“.chr(0xff).”A-Za-z0-9_-]+$/” : “/^[x{4e00}-x{9fa5}A-Za-z0-9_]+$/u”;
}else{
$match = ‘/^[A-za-z0-9_-]+$/’;
}
return preg_match($match,$str) ? true : false;
}
/**
* 邮箱验证
*/
public static function isEmail($str){
if(!self::isEmpty($str)) return false;
return preg_match(“/([a-z0-9]*[-_\.]?[a-z0-9]+)*@([a-z0-9]*[-_]?[a-z0-9]+)+[\.][a-z]{2,3}([\.][a-z]{2})?/i”,$str) ? true : false;
}
//手机号码验证
public static function isMobile($str){
$exp = “/^13[0-9]{1}[0-9]{8}$|15[012356789]{1}[0-9]{8}$|18[012356789]{1}[0-9]{8}$|14[57]{1}[0-9]$/”;
if(preg_match($exp,$str)){
return true;
}else{
return false;
}
}
/**
* URL验证,纯网址格式,不支持IP验证
*/
public static function isUrl($str){
if(!self::isEmpty($str)) return false;
return preg_match(‘#(http|https|ftp|ftps)://([w-]+.)+[w-]+(/[w-./?%&=]*)?#i’,$str) ? true : false;
}
/**
* 验证中文
* @param:string $str 要匹配的字符串
* @param:$charset 编码(默认utf-8,支持gb2312)
*/
public static function isChinese($str,$charset = ‘utf-8’){
if(!self::isEmpty($str)) return false;
$match = (strtolower($charset) == ‘gb2312’) ? “/^[“.chr(0xa1).”-“.chr(0xff).”]+$/”
: “/^[x{4e00}-x{9fa5}]+$/u”;
return preg_match($match,$str) ? true : false;
}
/**
* UTF-8验证
*/
public static function isUtf8($str){
if(!self::isEmpty($str)) return false;
return (preg_match(“/^([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){1}/”,$word)
== true || preg_match(“/([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){1}$/”,$word)
== true || preg_match(“/([“.chr(228).”-“.chr(233).”]{1}[“.chr(128).”-“.chr(191).”]{1}[“.chr(128).”-“.chr(191).”]{1}){2,}/”,$word)
== true) ? true : false;
}
/**
* 验证长度
* @param: string $str
* @param: int $type(方式,默认min <= $str <= max)
* @param: int $min,最小值;$max,最大值;
* @param: string $charset 字符
*/
public static function length($str,$type=3,$min=0,$max=0,$charset = ‘utf-8’){
if(!self::isEmpty($str)) return false;
$len = mb_strlen($str,$charset);
switch($type){
case 1: //只匹配最小值
return ($len >= $min) ? true : false;
break;
case 2: //只匹配最大值
return ($max >= $len) ? true : false;
break;
default: //min <= $str <= max
return (($min <= $len) && ($len <= $max)) ? true : false;
}
}
/**
* 验证密码
* @param string $value
* @param int $length
* @return boolean
*/
public static function isPWD($value,$minLen=6,$maxLen=16){
$match=’/^[\\~!@#$%^&*()-_=+|{}\[\],.?\/:;\’\”\d\w]{‘.$minLen.’,’.$maxLen.’}$/’;
$v = trim($value);
if(empty($v))
return false;
return preg_match($match,$v);
}
/**
* 验证用户名
* @param string $value
* @param int $length
* @return boolean
*/
public static function isNames($value, $minLen=2, $maxLen=16, $charset=’ALL’){
if(empty($value))
return false;
switch($charset){
case ‘EN’: $match = ‘/^[_\w\d]{‘.$minLen.’,’.$maxLen.’}$/iu’;
break;
case ‘CN’:$match = ‘/^[_\x{4e00}-\x{9fa5}\d]{‘.$minLen.’,’.$maxLen.’}$/iu’;
break;
default:$match = ‘/^[_\w\d\x{4e00}-\x{9fa5}]{‘.$minLen.’,’.$maxLen.’}$/iu’;
}
return preg_match($match,$value);
}
/**
* 验证ZIP
* @param string $value
*/
public static function checkZip($str){
if(strlen($str)!=6){
return false;
}
if(substr($str,0,1)==0){
return false;
}
return true;
}
/**
* 匹配日期
* @param string $value
*/
public static function checkDate($str){
$dateArr = explode(“-“, $str);
if (is_numeric($dateArr[0]) && is_numeric($dateArr[1]) && is_numeric($dateArr[2])) {
if (($dateArr[0] >= 1000 && $timeArr[0] <= 10000) && ($dateArr[1] >= 0 && $dateArr[1] <= 12) && ($dateArr[2] >= 0 && $dateArr[2] <= 31))
return true;
else
return false;
}
return false;
}
/**
* 匹配时间
* @param string $value
*/
public static function checkTime($str){
$timeArr = explode(“:”, $str);
if (is_numeric($timeArr[0]) && is_numeric($timeArr[1]) && is_numeric($timeArr[2])) {
if (($timeArr[0] >= 0 && $timeArr[0] <= 23) && ($timeArr[1] >= 0 && $timeArr[1] <= 59) && ($timeArr[2] >= 0 && $timeArr[2] <= 59))
return true;
else
return false;
}
return false;
}
}

MySQL select into临时表

Mysql sql语句实现复制一张表中的选中的字段到一张新表中去或者说
将表的查询结果存储到一张临时表里。
1.首先想到的是用select into,但是MYSQL不支持这一语法
MYSQL不支持:
        Select * Into new_table_name from old_table_name;
替代方法:
        Create TEMPORARY table new_table_name (Select * from old_table_name);
示例:
Create TEMPORARY table TempTable (Select user_id,user_name From tb_user);

10款理财App

我们总是不能抵挡打折的诱惑,感觉不到支付宝对钱包的吞噬。但是,现在已经轮到我们扛起生活、 家庭的担子了,因此是时候开始理财了。也许投资理财对于我们来说还很难,但月初消费计划以及对收支的掌握,也许会对让你养成合理的消费习惯。所以今天给大 家推荐10款iOS上的财务应用,相信你一定用得到。

小票盒—记账更快

说 到财务应用,记账类应首当其冲,虽说天天记账是个麻烦事儿,但如果你能坚持下来,会对消费和理财有一个全新的认识。此前我听说有不少人记账了之后不敢看最 后的月消费分析,因为总觉得自己没买什么,没玩什么,但最后的统计总是惊人的高。所以鉴于大家认为记账麻烦,那首先就给大家介绍一款省时省事儿,快速录入 的记账应用“小票盒—记账更快”。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

“小 票盒”致力于让记账的步骤尽可能的少,所以它采用了一种非常高效率的界面格局:左侧类别,右侧标签,下方数字键盘,这就避免了我们最找要在两个界面上跳转 来跳转去,直接一个界面,点击下就搞定一次记账了。“小票盒”的标签功能很好用,你既可以把它当做小类别来用,比如食品分类下的零食、饮料等,也可以把它 当做属性,比如约会、信用卡消费等等。这些标签可以尽情的添加和删除,避免了应用内置的大量小类别用不到或需要二次编辑的情况。另外“小票盒”还有报表功 能,并且可以把月报数据导出。总之,一款快捷的应用可以保证我们记账习惯的养成,在这方面“小票盒”确实十分突出。

卡牛信用卡助手

估 计到工作后,每个人手都至少有一张信用卡。信用卡固然好用,但是它相关的服务就不那么好用了,首先我们可能总是会忘记按时还款,这可能会带来很严重的结 果;其次账单要么发送到邮箱,要么邮寄到处所,找起来很是费事儿。如果想解决上述问题,那不妨下载这款“卡牛信用卡助手”,于此同时它还有非常好用的统计 以及将数据自动添加到记账软件等的功能。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

我 们使用“卡牛信用卡助手”不需要输入长长的号码,只需要输入账单邮箱,那么“卡牛”就会智能扫描到信用卡的账单,信用卡属性,以及还账日期等有用信息,然 后将数据导入到应用。这样一来,我们就能全面的了解到历来的消费记录,以及应用做出的消费记录的智能分类,并且知道当月的最低还款是多少。设置一个还款提 醒是很有必要的,你可以设置提前提醒的日子、时间以及提醒次数,保证不会忘记而被扣滞纳金。如果你的手机里有它的师兄应用“随手记”,那么无需手动就可以 将信用卡的消费一键导入到随手记之中。另外“卡牛”支持多张信用卡的同时管理,不用担心我们的数据被别人偷窥,因为它有手势密码功能。

DailyCost-简洁优雅的每日消费随记

如 果你觉得刚刚介绍的“小票盒”不够美观,那么你可以多了解一下“DailyCost-简洁优雅的每日消费随记”。就像它的名字一样,DailyCost有 着绝对优雅和别致的界面,这可能会促使你乐于记账。据说DailyCost由一个热爱生活,热爱记账的设计师利用业余时间独立设计和开发的应用,所有使用 过它的人都对它的界面设计念念不忘。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

当 开启界面,向下拖动纸片,就可以输入你的第一条开销数据,这样的交互设计让你对它充满了兴趣。简便的操作也是它的特征,除此之外它还支持壁纸的更换,共有 11款壁纸供我们选择。DailyCost意在打造优美,就连它的表格都是这样,在使用界面横屏即可进入统计图表,数据统计同时还支持CSV的导出以及 iCloud的备份。总之,如果你想收一款漂亮的记账应用,那DailyCost绝对不可多得。

旅费小帮手——AA制度出游的好工具

一 般出远门的旅游,与好朋友们组团比较常见,尽管互为好友但花费还是要记清为好,要不然可能会带来不必要的误会,可能还会影响旅行的心情,这就得不偿失了。 鉴于此,我们向大家推荐“旅费小帮手”应用。在“旅费小帮手”新建一个活动,然后在将所有同行伙伴的名字填入其中,基本的工作就完成了。每当消费时,我们 可以在应用上新增一个项目,现在共有“饮食”“娱乐”“交通”“购物”“住宿”“其他”可选。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

接 下来就到“明算账”的时刻了,输入“平均分摊”的花费总数额,应用马上会给出这几个人的平均应付金额,如果朋友们已经给过了钱,那么可以在“已付金额”中 输入相应的金额。在这里想告诉大家的是,不用担心有人给多了,或者给少了,因为应用到最后会把综合计算后的结果呈现出来,我们在按照红色的数字,也就是未 付的金额交齐就好了。有了这款应用,就不用怕旅游资费出差错了。

Toshl理财 – 省钱,预算,注意开支

接 下来再给大家推荐一款“好玩”的记账应用,它最大的优势是引入了一个卡通形象,出入在你操作的环节中,让你觉得就像是在和一个小宠物互动一样。有时它还会 说出鼓励的话语,让你倍感贴心。国际范儿是它的另外一个特色,它内置了超过160种的常用货币单位,也就是说在国外消费也不用算来算去再输入 了,“Toshl理财”会直接完成这一个步骤,我们需要做的只是在应用中将人民币单位变成外币单位,这一点是相当的人性化。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

当 我们要输入一项消费的时候,我们还可以为这个项目增加一个标签,添加后的标签会出现在界面下方,下一次就不需要再输入了,直接点击一下即可。有一个好用的 功能是“昨天”和“今天”,如果你忘记了昨天的消费,那么添加的时候可以省去了时间轮的选择,直接点击“昨天”即可,当然至于前天和大前天,还是要到时间 轮中进行输入。在“合计”功能中我们点击小怪物可以查看简单的统计,应用会告诉你支出和收入较之于上个月增加/减少了多少,以及还剩多少预算。如果你想要 更牛的图标就要升级到它的专业版,每月12元或者一年128元。是的,很贵,就我所知,免费版本就已经够用了!

Currency – Simple Converter

应 用商店中关于汇率换算的应用有很多,本次介绍的Currency – Simple Converter绝对有胜出的理由,它的“招数”是漂亮、美观的界面,以及好用的手势操作。当我们输入一个数额之后,Currency – Simple Converter最多支持同时显示6个国家的换算后的结果,而不是一对一的,这也可以说是它的一大亮点。如果想变换国家,那么直接点击一下,这个国家就 会变换到最上方,直接在这里输入数额就可以进行换算了。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

向 左滑动可以清零当前计算,向右则是撤销刚才的清零,除了显示出的6个国家,我们还可以通过搜索来添加其他国家,Currency – Simple Converter支持的国家多大160个。在数字键盘的右下角有一枚曲线图标,千万别忽略了它,它可以显示当前货币在近6个月来的汇率走势,方便你了解 行情。如果你有了这款Currency – Simple Converter,就方便海外代购了,同时也了解到这次代购是否超出了我们的预算,100美元看上去不多,但换算下来可是不小的一笔数字呢。

油耗计算器

下 面为有车一族介绍一款方便统计油耗的应用。它的优势在于能够把数据保存在服务器上,不管我们在哪里,只要输入用户名,那油耗数据就能随时的显示出来,在哪 儿都能进行编辑和添加,很是方便。“油耗计算器”不仅支持数据的添加,更强大的在于可以进行计算。它把两次邮箱里的油量达到同一基准线作为一个计算周期, 统计两次加油期间的总行驶里程,然后除以第二次油量,最后得出百公里的油耗。

理财其实并不难 八零九零后应该了解的10款App

理财其实并不难 八零九零后应该了解的10款App

如此之外,“油耗计算器”还内置了常见车型的油耗查询,全方位的看到车辆的行驶总天数、里程,耗油总量、油费合计、平均油价、平均里程,平均油耗以及平均油费等重要信息。有了这款应用,有车一族就能方便的了解自己车辆的耗费数据了。

礼来我往

如 果你到了主事的年纪,那么有一项活动会经常参与,那就是婚礼,因此礼金也就成为了这个年龄段财务支出的一个重要项目。接下来为大家奉上一款专门管理礼金的 应用“礼来我往”,它可以让你全面的记录礼金上的进账以及支出。当参加婚礼后,我们可以将他们的姓名、照片添加到应用中,然后输入金额和日期,有必要的话 再添加一个备注,以及地理位置信息。同样“礼来”数据的添加也是这几个项目,能全面的了解到随礼的款项。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

“礼 来我往”的数据统计共有两种,一种是按照时间段进行查询的“来往统计”,这里能看到简洁的按照姓名和金额排列的数据,方便我们了解大概。很贴心的是,它还 能按照我们的“礼尚往来”来进行计算,这包括了收到合计,赠与合计以及来往结果,最下方还有数据来往的明细。另一种是“来往总览”,我们可以按照姓名、价 值以及备注的信息进行数据的查找。“礼来我往”仅注重于礼金的来往,虽然功能单一,但并不代表鸡肋。不过如果在操作上再简单、人性化一些,那就再好不过 了!

MoneyWiz – 私人理财

MoneyWiz 的售价要贵一些,它在App Store的标价是30元人民币,推荐它的原因在于它的报表功能实在是太强大了,另外它还有两个明显的优势,一个是现在流行的日历功能,一个则是相当全面 且专业的功能,这些功能的层面超出了一般的生活记账。这包括有:净值、收款人、趋势、预测、预算对比、资产负债表等项目的报表,可以在应用上进行分期付 款,以及真实账户的核对。

理财其实并不难 八零九零后应该了解的10款App

理财其实并不难 八零九零后应该了解的10款App

报 表功能是它最大的特色,它内置了多种风格和样式的报表,既有柱状图样式,也有走势图,既然报表功能已经被证明是理财类应用最受欢迎的功能,那么 MoneyWiz就将这个功能尽可能的开拓,以适应不同用户的不同口味。另外值得一提的是,MoneyWiz的日历功能也很好用,它引入的日历用红绿点儿 来表示当天是否进账和消费,然后日历下方则展示出当天消费和收入的具体数据,让你一目了然。总而言之,倘若你希望有一款强大的理财应用,那可以考虑这款 MoneyWiz。

随手记

或 许在看完本篇理财类应用后还是有点头疼,不知道该选择哪一款记账应用,那么最后在考虑一下老牌的“随手记”吧,以后不知道会怎样,但现在它仍然是国内用户 量最大,最受欢迎的一款。最初,它以漂亮且华丽的高清界面赢得了不少人的欢心,用过之后你会觉得功能也十分全面,且用起来得心应手。尽管相比有些主打特色 的应用,“随手记”有点“赶不上潮流”了,但它仍然不失为一款综合性质的记账应用。就这一点,后来者赶超还是有点苦难的。

理财其实并不难 八零九零后应该了解的10款App
理财其实并不难 八零九零后应该了解的10款App

随 手记的报表功能最初仅有一种,现在发展的十分丰富了,尽管作为一个普通用户,我还是用最初的那个饼图,但为了凸显“随手记”的特征,我们还是有必要简单的 介绍一下。它现在支持饼图、条形图;支出报表、收入报表、资产报表、月度报表,每个分类下又有多个小项目,其中对比支出可以看到一年中哪个月的消费和收入 比较突出,方便了解全年的情况。一般同类应用为了简化操作,往往会在标签上下一番功夫,“随手记”没有标签,而是细化分类,虽然在添加的时候又那么一点麻 烦,但不得不说的是,当你用久了,你一点也不想简化它们,反而在之后的查看中可以全面的了解到这些信息。是的,“全”是“随手记”在功能上的第一大特色。

源自腾讯数码讯

常用的正则表达式

收集整理一些常用的正则表达式大家一起学习修改使用:
^\d+$  //非负整数(正整数 + 0)
^[0-9]*[1-9][0-9]*$  //正整数
^((-\d+)|(0+))$  //非正整数(负整数 + 0)
^-[0-9]*[1-9][0-9]*$  //负整数
^-?\d+$    //整数
^\d+(\.\d+)?$  //非负浮点数(正浮点数 + 0)
^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$  //正浮点数
^((-\d+(\.\d+)?)|(0+(\.0+)?))$  //非正浮点数(负浮点数 + 0)
^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$  //负浮点数
^(-?\d+)(\.\d+)?$  //浮点数
^[A-Za-z]+$  //由26个英文字母组成的字符串
^[A-Z]+$  //由26个英文字母的大写组成的字符串
^[a-z]+$  //由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //由数字和26个英文字母组成的字符串
^\w+$  //由数字    26个英文字母或者下划线组成的字符串
^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$    //email地址
^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$  //url
/^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1-9]{1}))|(3[0|1]))$/   //  年-月-日
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/   // 月/日/年
^([w-.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-]+.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$   //Emil
/^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-))?([0-9]{7,8})(\-[0-9]+)?$/
^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$   //IP地址

匹配中文字符的正则表达式: [\u4e00-\u9fa5]
匹配双字节字符(包括汉字在内):[^\x00-\xff]
匹配空行的正则表达式:\n[\s| ]*\r
匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:^[a-zA-z]+://(\\w+(-\\w+)*)(\\.(\\w+(-\\w+)*))*(\\?\\S*)?$
匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
匹配国内电话号码:(\d{3}-|\d{4}-)?(\d{8}|\d{7})?
匹配腾讯QQ号:^[1-9]*[1-9][0-9]*$

元字符及其在正则表达式上下文中的行为:

\ 将下一个字符标记为一个特殊字符    或一个原义字符    或一个后向引用    或一个八进制转义符。

^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’\n’ 或 ’\r’ 之后的位置。

$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’\n’ 或 ’\r’ 之前的位置。

* 匹配前面的子表达式零次或多次。

+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。

? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。

{n} n 是一个非负整数,匹配确定的n 次。

{n,} n 是一个非负整数,至少匹配n 次。

{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。

? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。

. 匹配除 “\n” 之外的任何单个字符。要匹配包括 ’\n’ 在内的任何字符,请使用象 ’[.\n]’ 的模式。
(pattern) 匹配pattern 并获取这一匹配。

(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

(?!pattern) 负向预查,与(?=pattern)作用相反

x|y 匹配 x 或 y。

[xyz] 字符集合。

[^xyz] 负值字符集合。

[a-z] 字符范围,匹配指定范围内的任意字符。

[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。

\b 匹配一个单词边界,也就是指单词和空格间的位置。

\B 匹配非单词边界。

\cx 匹配由x指明的控制字符。

\d 匹配一个数字字符。等价于 [0-9]。

\D 匹配一个非数字字符。等价于 [^0-9]。

\f 匹配一个换页符。等价于 \x0c 和 \cL。

\n 匹配一个换行符。等价于 \x0a 和 \cJ。

\r 匹配一个回车符。等价于 \x0d 和 \cM。

\s 匹配任何空白字符,包括空格    制表符    换页符等等。等价于[ \f\n\r\t\v]。

\S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。

\t 匹配一个制表符。等价于 \x09 和 \cI。

\v 匹配一个垂直制表符。等价于 \x0b 和 \cK。

\w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。

\W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。

\xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。

\num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。

\n 标识一个八进制转义值或一个后向引用。如果 \n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

\nm 标识一个八进制转义值或一个后向引用。如果 \nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 \nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 \nm 将匹配八进制转义值 nm。

\nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。

\un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。

匹配中文字符的正则表达式: [u4e00-u9fa5]

匹配双字节字符(包括汉字在内):[^x00-xff]

匹配空行的正则表达式:n[s| ]*r

匹配HTML标记的正则表达式:/<(.*)>.*</1>|<(.*) />/

匹配首尾空格的正则表达式:(^s*)|(s*$)

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*

匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&=]*)?

利用正则表达式限制网页表单里的文本框输入内容:

用正则表达式限制只能输入中文:onkeyup=”value=value.replace(/[^u4E00-u9FA5]/g,”)” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^u4E00-u9FA5]/g,”))”

用正则表达式限制只能输入全角字符: onkeyup=”value=value.replace(/[^uFF00-uFFFF]/g,”)” onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^uFF00-uFFFF]/g,”))”

用正则表达式限制只能输入数字:onkeyup=”value=value.replace(/[^d]/g,”) “onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^d]/g,”))”

用正则表达式限制只能输入数字和英文:onkeyup=”value=value.replace(/[W]/g,”) “onbeforepaste=”clipboardData.setData(‘text’,clipboardData.getData(‘text’).replace(/[^d]/g,”))”

=========常用正则式

匹配中文字符的正则表达式: [\u4e00-\u9fa5]

匹配双字节字符(包括汉字在内):[^\x00-\xff]

匹配空行的正则表达式:\n[\s| ]*\r

匹配HTML标记的正则表达式:/<(.*)>.*<\/\1>|<(.*) \/>/

匹配首尾空格的正则表达式:(^\s*)|(\s*$)

匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //

匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?

sql语句:^(select|drop|delete|create|update|insert).*$

非负整数:^\d+$

正整数:^[0-9]*[1-9][0-9]*$

非正整数:^((-\d+)|(0+))$

负整数:^-[0-9]*[1-9][0-9]*$

整数:^-?\d+$

非负浮点数:^\d+(\.\d+)?$

正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$

非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$

负浮点数:^(-((正浮点数正则式)))$

英文字符串:^[A-Za-z]+$

英文大写串:^[A-Z]+$

英文小写串:^[a-z]+$

英文字符数字串:^[A-Za-z0-9]+$

英数字加下划线串:^\w+$

E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\’:+!]*([^<>\”\”])*$    URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$

邮政编码:^[1-9]\d{5}$

中文:^[\u0391-\uFFE5]+$

电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$

手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$

双字节字符(包括汉字在内):^\x00-\xff

匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)

匹配HTML标记:<(.*)>.*<\/\1>|<(.*) \/>

匹配空行:\n[\s| ]*\r

提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *(‘|”)?(\w|\\|\/|\.)+(‘|”| *|>)?

提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*

提取信息中的图片链接:(s|S)(r|R)(c|C) *= *(‘|”)?(\w|\\|\/|\.)+(‘|”| *|>)?

提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)

提取信息中的中国手机号码:(86)*0*13\d{9}

提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}

提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}

提取信息中的中国邮政编码:[1-9]{1}(\d+){5}

提取信息中的浮点数(即小数):(-?\d*)\.?\d+

提取信息中的任何数字 :(-?\d*)(\.\d+)?

IP:(\d+)\.(\d+)\.(\d+)\.(\d+)

电话区号:/^0\d{2,3}$/

腾讯QQ号:^[1-9]*[1-9][0-9]*$

帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$

中文    英文    数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$

网页常用的tab选项卡效果

1、横向(纵向)时间轴tab标签切换和水平(垂直)

\

下载地址:http://www.lanrenzhijia.com/tab/2362.html

2、tab标签样式焦点图切换代码

\

下载地址:http://www.lanrenzhijia.com/tab/2230.html

3、多种不同方向风格的tab标签切换效果

\

下载地址:http://www.lanrenzhijia.com/tab/2206.html

4、多层tab标签嵌套支持无连接分类

\

下载地址:http://www.lanrenzhijia.com/tab/2180.html

5、js简易选项卡

\

下载地址:http://www.lanrenzhijia.com/tab/2072.html

6、国外网站复制过来的jquery滑块内容

\

下载地址:http://www.lanrenzhijia.com/tab/2043.html

7、jquery选项卡插件多种tab标签切换效果

\

下载地址:http://www.lanrenzhijia.com/tab/1872.html

8、tab标签图片渐隐渐现效果

\

下载地址:http://www.lanrenzhijia.com/tab/1863.html

9、Firefox附加组件中心风格tab标签

\

下载地址:http://www.lanrenzhijia.com/tab/1780.html

10、jquery标签支持图文排列带按钮的选项卡

\

下载地址:http://www.lanrenzhijia.com/tab/1565.html

11、jquery实现竖向滑动支持多文字内容tab标签

\

下载地址:http://www.lanrenzhijia.com/tab/985.html

12、jquery实现焦点图轮换代码

\

下载地址:http://www.lanrenzhijia.com/tab/861.html

13、jquery插件实现软件后台管理界面

\

下载地址:http://www.lanrenzhijia.com/others/526.html

14、多选项卡点击左右按钮图文滚动特效

\

下载地址:http://www.lanrenzhijia.com/tab/431.html

15、可打开关闭的tab选项卡

\

下载地址:http://www.lanrenzhijia.com/tab/315.html

16、可多次使用的jQuery tab选项卡代码

\

下载地址:http://www.lanrenzhijia.com/tab/306.html

17、js实现自适应宽度的tab标签导航

\

下载地址:http://www.lanrenzhijia.com/tab/98.html

来源:PHP100

拿来主义–很实用的一些例子,感谢作者

jQuery图片轮播插件

这里介绍几个流行比较实用的Jquery图片滑动轮播效果,希望能对大家有用。也记录下来方便以后使用
Wow Slider
WOW Slider是一款小巧易用的网页滑块设计。该软件内置大量的模版和工具,让你轻松设计出完美的视觉效果。他还可以帮助用户在短时间内创造出梦幻般的滑块,而无需编码和图像编辑,是很不错的图像滑块设计工具。20 个非常棒的jQuery内容滑动插件

Nivo Slider

Nivo Slider是一款出色的jQuery幻灯片插件,支持多种切换效果,可定制性强.

20 个非常棒的jQuery内容滑动插件

Simple Multi-Item Slider
一款基于jQuery插件的多项目滚动条,Simple Multi-Item Slider Category slider with CSS animations,像TAB一样的风格,稍带些动画效果,点击缺口可成批次切换图片,从演示效果来看,更适合于购物网站使用,或者是IT产品图片展示 使用。

20 个非常棒的jQuery内容滑动插件

Fullscreen Slit Slider with CSS3 and jQuery
The Fullscreen Slit Slider from Codrops is a unique slider with some interesting transition effects. Instead of simply sliding, it slices open the slide as it transitions to the next slide.

20 个非常棒的jQuery内容滑动插件

Parallax Content Slider with CSS3 and jQuery
If you’re looking for a slider that will allow you to include content as well as images, the Parallax Content Slider could be a good choice. It uses CSS3 animations with each single element, so you have a lot of control.

20 个非常棒的jQuery内容滑动插件

Rotating Image Slider with jQuery
If you’re looking for a unique slider that will help your site to stand out, this is a great option. Instead of simply slider images in and out it gives theme a slight rotation, which creates a really interesting slider that visitors will love.

20 个非常棒的jQuery内容滑动插件

Parallax Slider with jQuery
这是一个利用视差原理来实现的一个漂亮jQuery图片幻灯片播放效果的插件,当切换图片时候,背景图片也可以跟随改变,这样能够让整个滑块在运动时产生非常吸引人的效果。

20 个非常棒的jQuery内容滑动插件

Slider Gallery with jQuery
This slider displays thumbnails in a horizontal slider. As is shown in the demo, it is great for photography websites to display photos in different categories.

20 个非常棒的jQuery内容滑动插件

Unslider
Unslider 是一款非常轻量的 jQuery 插件(压缩后只有 1KB),能够用于任何 HTML 内容的滑动。可以响应容器的大小变化,自动排布不用大小的滑块。可以通过整合 jQuery.event.swipe 来让其支持触屏设备的滑动功能。

20 个非常棒的jQuery内容滑动插件

Unoslider

特别推荐unoslider这个幻灯片插件,基于响应式设计,拥有众多切换效果,支持触屏。

20 个非常棒的jQuery内容滑动插件

Responsiveslides.js

ResponsiveSlides.js 是一个微型的 jQuery 插件用来创建响应式的幻灯展示效果,对 <ul> 标签中的图片进行自动幻灯展示,支持几乎所有浏览器包括 IE6。也可设置 max-width 属性并对 IE6 有效。

20 个非常棒的jQuery内容滑动插件

Camera
Camera is a responsive slider using jQuery mobile so users can mobile users can scroll through slides easily on a touchscreen. The are plenty of options for customizations and it supports HTML and video in addition to just images.

20 个非常棒的jQuery内容滑动插件

SlidesJS

Slides – 是一个简单的,容易定制和风格化,的jQuery幻灯片插件。

Slides提供褪色或幻灯片过渡效果,图像淡入淡出,图像预压,自动生成分页,循环,自动播放的自定义等很多选项。

用Slides插件,你可以随机播放幻灯片,设定那一套您想要开始幻灯片。它附带充分的说明和示例。

20 个非常棒的jQuery内容滑动插件

bxSlider

bxSlider 是一个 jQuery 的插件,它可以实现 Slider 和滚动效果。这个插件使用非常简单,并且大小只有 8kb,非常轻量级,所以非常适合在站点和博客中使用。

20 个非常棒的jQuery内容滑动插件

Basic jQuery Slider

Basic jQuery Slider 是一个轻量级的很简洁的 jQuery 内容滑动插件,经压缩后也仅有4.6kb大小。它能用来展示文字、图片等任意的 HTML 内容。此插件并没有太多花哨的功能,仅包含一些基础的功能,实现了 fade 和 slide 两种动画切换效果。除了使用按钮的导航方式外,它还支持使用键盘控制。此插件最大的特点是支持自定义主题样式,完全可以打造出很漂亮的效果来。

20 个非常棒的jQuery内容滑动插件

Elastislide

Elastislide是一个负责任的jQuery的旋转图片展示,插件会根据图的大小进行调整,这个jquery在企业网站产品展示中应用是一个不错的选择!

20 个非常棒的jQuery内容滑动插件

RSlider

RSlider 是一个全屏的响应式图像和内容滑块,外观设计简洁大方,会根据浏览器的窗口宽度自动调整尺寸。

20 个非常棒的jQuery内容滑动插件

FlexSlider

FlexSlider是一个轻量级的jQuery内容滚动插件,压缩后只有4KB大小。它能让你轻松的创建内容滚动的效果,具有非常高的可定制性。它是将UL列表转换成内容滚动的列表,可以自动播放,或者使用导航按钮和键盘来控制。

20 个非常棒的jQuery内容滑动插件

Slider Revolution
Slider Revolution is a premium WordPress plugin ($15) that allows you to easily create and customize responsive sliders. It comes with 20 different transitions, it’s touch enabled, and you can include just about any content you want within your slider.

20 个非常棒的jQuery内容滑动插件

SlideDeck
SlideDeck is a premium WordPress plugin ($49 for a single site license). It’s extremely popular because it offers a ton of useful features and because it is easy to set up beautiful responsive sliders from within the WordPress dashboard without any coding. For designers/developers who prefer to code their own slider, or to customize the code of an existing slider, SlideDeck may not be the ideal option. But for end users who want to be able to create sliders without the need to mess with code, it can be a great choice.

20 个非常棒的jQuery内容滑动插件

来源:open资讯

用CSS3创建漂亮按纽的30个教程

用CSS3创建漂亮按纽的30个教程

Glossy Buttons With CSS3 Gradient

Demo || Tutorial

用CSS3创建按纽的30个教程

Create 3D Social Media Buttons with CSS3

Demo || Tutorial

用CSS3创建按纽的30个教程

Crafting Minimal Circular 3D Buttons with CSS

Demo || Tutorial

用CSS3创建按纽的30个教程

How to Create Fancy Animated Buttons in CSS3

Demo || Tutorial

用CSS3创建按纽的30个教程

Creating a 3D Button in CSS3

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 and jQuery Slide Out Button

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Animated Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Fanciness Button Switches with Checkboxes

Demo || Tutorial

用CSS3创建按纽的30个教程

Colored Buttons in CSS3

Demo || Tutorial

用CSS3创建按纽的30个教程

Glass Edge with CSS3 Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Pure Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程Amazing Play CSS3 Button

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 BonBon Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

Push it CSS3 Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

3D Button

Demo || Tutorial

用CSS3创建按纽的30个教程

Cross Browser Pure CSS3 Button

Demo || Tutorial

用CSS3创建按纽的30个教程

3D Chunky CSS3 Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

Pure CSS3 Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Dynamic Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

Pratical CSS3 Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

Beautiful Animated CSS3 Push Button

Demo || Tutorial

用CSS3创建按纽的30个教程

Download Green 3D Button

Demo || Tutorial

用CSS3创建按纽的30个教程

Metal Electric CSS3 Button

Demo || Tutorial

用CSS3创建按纽的30个教程

Pure CSS Push Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

Beautiful Pure CSS3 Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Starbursts

Demo || Tutorial

用CSS3创建按纽的30个教程

Fantastic Animated Buttons using CSS3

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Google-styled buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

Create GitHub-style CSS3 buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

CSS3 Animated Bubble Buttons

Demo || Tutorial

用CSS3创建按纽的30个教程

来源:OPEN资讯

jQuery的网站导航插件用于指导用户使用网站新功能

当一个网站或者一个Web应用推出新功能时,为了让用户知道你的站点(或应用)如何操作?为了让你的用户有更好的体验。往往这个时候都会给你的站点(应 用)添加一个分步指引的效果。下面为大家介绍这样一些jQuery插件帮助你实现分步指 引的效果,你可以根据自己需求定制,更强的是他们都具有一个时尚的外观效果,而且简单易用。

Intro.js

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

Intro.js 使用一种引导式的方式来一步步介绍你网站和项目新特性。支持键盘+鼠标的导航方式。

aSimpleTour

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

aSimpleTour 使用JSON数据进行存储配置和内容。

一个浮动窗帮助管理重点元素的游览,工具提示(可以定位)。

Pageguide.js

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

PageGuide. js 是一个利用jQuery 与 CSS3实现的交互式可视化网页向导组件,通过 PageGuide.js 可制作出友好的帮助提示。

Joyride

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

Joyride是一个jQuery插件,可以利用它来创建一个引导用户如何操作网站功能的向导。通过定义一个操作步骤顺序,这个插件会在需要操作的HTML元素旁边显示一个帮助说明的Tooltips。

Website Tour

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

一个简单,但实用的插件。所有明细和内容都定义在JS中。它还提供选项来定tooltips的位置和颜色。

Bootstro.js

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

这个是Intro.js的Bootstrap版本。

Bootstrap Tour

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

这个jQuery网站导航在Bootstrap Popovers中加载内容。

导航步骤和内容都定义在JavaScript中,它拥有许多的选项来定义其行为。

jQuery Site Tour

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

这个插件拥有许多的选项来定外观和步骤之间的延迟,设置要初始显示的项目,等等。

jQuery TourBus

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

这个插件采用CoffeeScript+Less + CSS开发。

jQuery TourBus 非常易于定制,可手动显示其他步骤或自动播放。

有函数来获得当前的步骤,或者显示特定的一个步骤。

Trip.js

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

所有用引导的步骤和内容都定义在JS中,它拥有一个完整的API,支持callbacks, keyboard。并能够自定义外观。

Crumble

11个非常棒“jQuery的网站导航插件”用于指导用户使用网站新功能

以一种不同的可视化方式来引导用户浏览网站。

Crumble使用采用冒泡的界面,所有的步骤定义在一个有序的列表

来源:OPEN资讯

MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

MySQL的FROM_UNIXTIME()和UNIX_TIMESTAMP()函数的区别

from_unixtime()是MySQL里的时间函数
date为需要处理的参数(该参数是Unix 时间戳),可以是字段名,也可以直接是Unix 时间戳字符串
后面的 ‘%Y%m%d’ 主要是将返回值格式化
例如:
mysql>SELECT FROM_UNIXTIME( 1249488000, ‘%Y%m%d’ )…..
->20071120
mysql>SELECT FROM_UNIXTIME( 1249488000, ‘%Y年%m月%d’ ) …..
->2007年11月20

UNIX_TIMESTAMP()是与之相对正好相反的时间函数

UNIX_TIMESTAMP(), UNIX_TIMESTAMP(date)

若无参数调用,则返回一个 Unix timestamp (‘1970-01-01 00:00:00′ GMT 之后的秒数) 作为无符号整数。若用date 来调用 UNIX_TIMESTAMP(),它会将参数值以’1970-01-01 00:00:00’ GMT后的秒数的形式返回。date 可以是一个 DATE 字符串、一个 DATETIME字符串、一个 TIMESTAMP或一个当地时间的YYMMDD 或YYYMMDD格式的数字。

例如:

mysql> SELECT UNIX_TIMESTAMP() ; (执行使得时间:2009-08-06 10:10:40)
->1249524739
mysql> SELECT UNIX_TIMESTAMP(‘2009-08-06’) ;
->1249488000