Mrxn分享emlog技巧之---让emlog文章中显示中文星期几的方法 emlog

Mrxn分享emlog技巧之---让emlog文章中显示中文星期几的方法,先上效果图,就像本博客微语公告一样的效果:

01.png

先介绍几种将php中星期几以中文方式显示的方法:


<?php
function get_chinese_weekday($datetime)
{
    $weekday = date('w', strtotime($datetime));
    return '星期' . ['日', '一', '二', '三', '四', '五', '六'][$weekday];
}
?>

以上是PHP>=5.4版本的.



<?php
function get_chinese_weekday($datetime)
{
    $weekday  = date('w', strtotime($datetime));
    $weeklist = array('日', '一', '二', '三', '四', '五', '六');
    return '星期' . $weeklist[$weekday];
}
?>

以上是PHP<5.4版本的.

Debain / Ubuntu 若有安裝 php5-intl 的套件, 可以使用 IntlDateFormatter 来写 (PHP 5 >= 5.3.0, PECL intl >= 1.0.0)

下面介绍在emlog中具体实现方法:

以默认模版为例在log_list.php找到:


<?php echo gmdate('Y-n-j', $value['date']); ?>


替换为:

<?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $value['date']);echo" 星期".$weekarray[gmdate('w', $value['date'])];?>

如果是内容页请使用下面代码,以默认模版为例在echo_log.php找到

<?php echo gmdate('Y-n-j', $date); ?>

替换为:

<?php $weekarray=array("日","一","二","三","四","五","六");echo gmdate('Y年n月j日 G:i', $date);echo " 星期".$weekarray[gmdate('w',$date)];?>






admin 发布于  2015-6-27 17:52 

Mrxn分享本博客的幻灯片样式小计--气死 -_- | emlog

Mrxn分享本博客的幻灯片样式小计--气死 -_- |

QQ截图20150626235257.png

喜欢的就按照以下步骤折腾:


代码是借助封装js代码msclass进行修改,需要修改三个文件:module.php,head.php,index.php或者log_list.php。具体代码修改如下:

一、在

module .php

文件底部加入如下代码




<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><?php
//slide数据源
//定义函数,只有一个参数$num,即为调用的数据条数
function get_flash_data_img($num){
//面向对象中静态方法实例化数据库对象(我是这么理解的)
$db = MySql::getInstance();
//下面是数据库语句,即获取gid,title,data,content等内容,非隐藏,时间正序,总共$num条数据,按照时间排序(包括首页置顶和分类置顶)
$sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog inner join ".DB_PREFIX."sort WHERE hide='n' AND type='blog' AND top='y' | sortop='y' AND sortid=sid order by date DESC LIMIT 0,$num";
// $sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog WHERE hide='n' ORDER BY date DESC LIMIT 0,$num";
$go = $db->query($sql);
//开始循环进行显示
while($row = $db->fetch_array($go)){
$img_url = '';
//picthumb()函数为获取文章附件图片的函数,后面会补上
//如果附件中含有图片,那么$img_url就等于附件图片的地址
if(picthumb($row['gid'])){
$img_url = picthumb($row['gid']);
//pin_thumb()函数为获取文章中图片链接的函数,后面会补上
//如果附件中不含图片,但是文章中有外链图片,则$img_url等于外链图片的地址
}elseif(pic_thumb($row['content'])){
$img_url = pic_thumb($row['content']);
//如果以上两种情况都没有图片,那么$img_url就等于默认图片
//如下默认图片的路径是模板路径下images文件夹下的default_flash.jpg文件
}else{
$img_url = TEMPLATE_URL.'images/default_flash.jpg';
}
//下面这一句是非常关键的,$data即为我们上面步骤所说的数据
//第二步骤中我们知道格式为“<b><span style="color:#e53333;"><div><img src="图片地址1" stitle="标题名1" slink="链接地址1" /></div></span></b>”
//如下格式必须和上面步骤中提取出来的数据格式一致。如果是不同的幻灯片插件,只需此处的格式不同而已。
$data1 = '<li><img src="'.$img_url.'" stitle="'.$row['title'].'" slink="'.Url::log($row['gid']).'" /></li>';
$data2 = '<li><a href="'.Url::log($row['gid']).'">'.$row['title'].'</a></li>';
//最后打印出数据,由于当前代码的位置是在while的循环体,因此会循环$num条数据
?>
<li><a href="<?php echo Url::log($row['gid']); ?>"><img src="<?php echo $img_url; ?>" alt="<?php echo $row['title']; ?>" width="510" height="280" /></a></li>
<?php } ?>
<?php } ?>
<?php
//slide数据源
//定义函数,只有一个参数$num,即为调用的数据条数
function get_flash_data_art($num){
//面向对象中静态方法实例化数据库对象
$db = MySql::getInstance();
//下面是数据库语句,即获取gid,title,data,content等内容,非隐藏,时间正序,总共$num条数据,按照时间排序(包括首页置顶和分类置顶)
$sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog WHERE hide='n' AND type='blog' AND top='y' | sortop='y' AND sortid=sid order by date DESC LIMIT 0,$num";
// $sql = "SELECT gid,title,date,content FROM ".DB_PREFIX."blog WHERE hide='n' ORDER BY date DESC LIMIT 0,$num";
$go = $db->query($sql);
//开始循环进行显示
while($row = $db->fetch_array($go)){
$img_url = '';
//picthumb()函数为获取文章附件图片的函数,后面会补上
//如果附件中含有图片,那么$img_url就等于附件图片的地址
if(picthumb($row['gid'])){
$img_url = picthumb($row['gid']);
//pin_thumb()函数为获取文章中图片链接的函数,后面会补上
//如果附件中不含图片,但是文章中有外链图片,则$img_url等于外链图片的地址
}elseif(pic_thumb($row['content'])){
$img_url = pic_thumb($row['content']);
//如果以上两种情况都没有图片,那么$img_url就等于默认图片
//如下默认图片的路径是模板路径下images文件夹下的default_flash.jpg文件
}else{
$img_url = TEMPLATE_URL.'images/default_flash.jpg';
}
//下面这一句是非常关键的,$data即为我们上面步骤所说的数据
//第二步骤中我们知道格式为“<b><span style="color:#e53333;"><div><img src="图片地址1" stitle="标题名1" slink="链接地址1" /></div></span></b>”
//如下格式必须和上面步骤中提取出来的数据格式一致。如果是不同的幻灯片插件,只需此处的格式不同而已。
$data1 = '<li><img src="'.$img_url.'" stitle="'.$row['title'].'" slink="'.Url::log($row['gid']).'"></li>';
$data2 = '<li><a href="'.Url::log($row['gid']).'">'.$row['title'].'</a></li>';
//最后打印出数据,由于当前代码的位置是在while的循环体,因此会循环$num条数据
?>
<li class=""><a href="<?php echo Url::log($row['gid']); ?>"><?php echo $row['title']; ?></a></li>
<?php } ?>
<?php } ?>
<?php
//get thumbs(获取附件图片)
function picthumb($blogid) {
$db = MySql::getInstance();
$sql = "SELECT FROM ".DB_PREFIX."attachment WHERE blogid=".$blogid." AND (filepath LIKE '%jpg' OR filepath LIKE '%gif' OR filepath LIKE '%png') ORDER BY aid ASC LIMIT 0,1";
// die($sql);
$imgs = $db->query($sql);
while($row = $db->fetch_array($imgs)){
$pict.= ''.BLOG_URL.substr($row['filepath'],3,strlen($row['filepath'])).'';
}
return $pict;
}
?>
<?php
//get thumbs(获取图片链接)
function pic_thumb($content){
//preg_match_all全局匹配content中的图片地址,并存入$img变量
preg_match_all("|<img[^>]+src=\"([^>\"]+)\"?[^>]
>|is", $content, $img);
//当图片存在时,获取第一张图片,地址保存在$imgsrc中
$imgsrc = !empty($img[1]) ? $img[1][0] : '';
if($imgsrc):
return $imgsrc;
endif;
}
?>

二、在

head.php

引入封装js特效代码:




<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><script type="text/javascript" src="<?php echo TEMPLATE_URL; ?>js/MSClass.js" language="javascript"></scrip

三、在

index.php

或者

log_list.php

添加调用参数:




<pre style="overflow:auto" ;class="prettyprint lang-php linenums"><script type="text/javascript">
function $(id){return document.getElementById(id)};
</script>
<div id="focusPic">
<div id="focusLeft"><ul id="focuscontent"><?php echo get_flash_data_img(10); ?></ul></div>
<div id="focusTitle"><ul id="focusMenu"><?php echo get_flash_data_art(10); ?></ul></div>
<div class="clear"></div>
</div>
<script type="text/javascript">
new Marquee(
{
MSClassID : "focusLeft",
ContentID : "focuscontent",
TabID : "focusMenu",
Direction : 0,
Step : 0.3,
Width : 515,
Height : 280,
Timer : 20,
DelayTime : 3000,
WaitTime : 0,
ScrollStep: 280,
SwitchType: 0,
AutoStart : 1,
})
</script>

最后,附加css样式表,在首页css样式表文件中加入如下样式表代码:



<pre style="overflow:auto" ;class="prettyprint lang-css linenums">#focusPic{width:100%; height:300px; margin:0 auto; clear:both; text-align:center; padding:0px;background-color:#ffffff;}

focusPic ul{margin:0;padding:0;border:0}

#focusPic #focusTitle{width:300px; float:right; font-size:12px; text-align:left;}
#focusPic #focusTitle li{height:28px; line-height:28px; background:url(images/focusTitleBg.gif) left 0 no-repeat; cursor:pointer; font-size:12px; padding-left:20px;overflow:hidden;}
#focusPic #focusMenu li.active{background-position:0 -29px; font-weight:bold;}
#focusPic #focusMenu li.active a{color:#f2f2f2;}
#focusPic #focusLeft{width:515px; height:280px; overflow:hidden; float:left;margin-top: 5px;}
#focusPic #focusLeft #focuscontent li{width:515px;height:280px; overflow:hidden;}</pre>

附件可以在这里下载,或者是自己 Ctrl+U 下载 : MSClass.js.7z.zip

最后感谢 简爱Finally 提供的友情帮助  思密达! -_- ||



admin 发布于  2015-6-26 23:05 

免费获得30天极客学院VIP 业界新闻

极客学院IT在线教育平台隶属于北京优亿致远无线技术有限公司(亦称北京易联致远无线技术有限公司)。


极客学院是中国最大的IT职业在线教育平台。极客学院的理念是通过最新实战课程,帮助职业开发者系统学习Android、Cocos2d- x、iOS、HTML5、Java等高薪所需的职业开发技能。目前,超过80万专业技术开发者通过极客学院学得了更有竞争力的最新IT技能。

06-20-45-07.png

2014年,中国几乎所有的热门技术及应用课程,都由极客学院首发。包括:中国第一个「Flappy Bird」课程、中国第一个「2048」的课程、中国第一个「围住神经猫」等诸多中国乃至全球首发课程。在六月份,WWDC苹果发布全新的Swift开发 语言时,极客学院更是7个小时就上线了Swift的开发课程。


创始团队写过中国大陆第一本Android开发教材,重印高达18版,是Android开发学习入门必读红宝书。同时创办了中国最大的移动开发者社区eoe(注册用户超200W)。

现在加入极客就免费享受30天VIP会员哦: 点击我领取30天会员

06-20-44-47.png


标签: 编程

admin 发布于  2015-6-25 19:51 

css控制不溢出,不换行,溢出部分省略号显示 PHP

css控制不溢出,不换行,溢出部分省略号显示:white-space:nowrap;text-overflow:ellipsis;overflow:hidden;

ext-overflow 取值:
clip : 默认值。不显示省略标记(...),而是简单的裁切
ellipsis : 当对象内文本溢出时显示省略标记(...)
 
white-space : normal | pre | nowrap 取值:
normal : 默认值。默认处理方式。文本自动处理换行。假如抵达容器边界内容会转到下一行
pre : 换行和其他空白字符都将受到保护。这个值需要IE6+或者 !DOCTYPE 声明为 standards-compliant mode 支持。如果 !DOCTYPE 声明没有指定为 standards-compliant mode ,此属性可以使用,但是不会发生作用。结果等同于 normal 。参阅 pre 对象
nowrap : 强制在同一行内显示所有文本,直到文本结束或者遭遇 br 对象。参阅 noWrap 属性

overflow : visible | auto | hidden | scroll 取值:
visible : 默认值。不剪切内容也不添加滚动条。假如显式声明此默认值,对象将以包含对象的 window 或 frame 的尺寸裁切。并且 clip 属性设置将失效
auto : 在必需时对象内容才会被裁切或显示滚动条
hidden : 不显示超过对象尺寸的内容
scroll : 总是显示滚动条

标签: 编程 代码 css

admin 发布于  2015-6-8 23:41 

分享4个自动生成网址二维码图片的方法 免费资源

二维码可以把图片、声音、文字、签字、指纹等可以数字化的信息进行编码,用条码表示出来;可以表示多种语言文字;可表示图像数据。高密度编码,信息容量大。一直广泛用于电子商务、广告媒体、支付等等平台。

    二维码在线生成的免费服务并不新奇,现在网络提供二维码生成服务的网站非常多,如果你自己感兴趣也可以自己下载一个二维码生成器本地生成。这次我们就来说说如何在自己的博客或者网站上,自动根据当前网址生成二维码吧。

说明:把url=后面的网址改成你的,二者任选一。

http://b.bshare.cn/barCode?site=weixin&amp;url=https://mrxn.net

http://s.jiathis.com/qrcode.php?url=https://mrxn.net

说明:下面是EMLOG程序专用的,把代码复制到EMLOG模板echo_log.php你需要的位置即可。

http://b.bshare.cn/barCode?site=weixin&amp;url=&lt;?php echo Url::log($logid);?>

http://s.jiathis.com/qrcode.php?url=&lt;?php echo Url::log($logid);?> 


 第三个(推荐):

http://qr.liantu.com/api.php?text=

引用方式如下:


  • 可以使用<img src="http://qr.liantu.com/api.php?text=x"/>进行引用
  • 2下载图片 http://qr.liantu.com/api.php?text=x 进行引用
  • 3直接引用网址 http://qr.liantu.com/api.php?text=x
x 必须用UTF8编码格式,x内容出现 & 符号时,请用 %26 代替,
换行符使用 %0A
引用参数

以下参数可用于引用二维码图片时定义图片样式

参数引用例子:http://qr.liantu.com/api.php?&bg=ffffff&fg=cc0000&text=x

参数 描述 赋值例子
bg 背景颜色 bg=颜色代码,例如:bg=ffffff
fg 前景颜色 fg=颜色代码,例如:fg=cc0000
gc 渐变颜色 gc=颜色代码,例如:gc=cc00000
el 纠错等级 el可用值:h\q\m\l,例如:el=h
w 尺寸大小 w=数值(像素),例如:w=300
m 静区(外边距) m=数值(像素),例如:m=30
pt 定位点颜色(外框) pt=颜色代码,例如:pt=00ff00
inpt 定位点颜色(内点) inpt=颜色代码,例如:inpt=000000
logo logo图片 logo=图片地址,例如:logo=http://www.liantu.com/images/2013/sample.jpg


第四个(推荐): 官网地址: http://www.k780.com

1.png

介绍
在线生成二维码
注:API URL可直接在html img标签中使用,如data参数为中文请先urlencode('中文')

qr.get为匿名接口,每IP每小时不得超出720次.
付费用户请使用qr.vget接口参数带入您的appkey及sign,其它不变.
请求方式
Get/Post
请求参数说明
参数名称 类型 是否必须 说明
data string 1 需要生成二维码内例如:test
level string 0 纠错级别 <'L','M','Q','H'>,默认: L
size number 0 大小 <1-20>,默认: 6
返回参数说明
参数名称 类型 说明
success {0/1} 执行结果,当出错时将会出现此节点出现,否则不出现
msg string 出错消息,当出错时将会出现此节点,否则不出现
请求示例json
http://api.k780.com:88/?app=qr.get&data=test&level=L&size=6
请求示例jsonp
http://api.k780.com:88/?app=qr.get&data=test&level=L&size=6
请求示例xml
http://api.k780.com:88/?app=qr.get&data=test&level=L&size=6
那我们emlog可以这样使用:

$url = Url::log($arr['logid']);//提取本页面的URL

然后php调用就OK

<?php echo Url::log($logid);?> 


admin 发布于  2015-6-7 04:49 

css 书写顺序、命名规则的指南 PHP

这里总结了一些国外一些文章以及我的个人经验总结出来,我想对写CSS的前端用户来说是值得学习的。

CSS书写顺序

  1. 位置属性(position, top, right, z-index, display, float等)
  2. 大小(width, height, padding, margin)
  3. 文字系列(font, line-height, letter-spacing, color- text-align等)
  4. 背景(background, border等)
  5. 其他(animation, transition等)

img.png

CSS书写规范

使用CSS缩写属性

CSS有些属性是可以缩写的,比如padding,margin,font等等,这样精简代码同时又能提高用户的阅读体验。

img.png

去掉小数点前的“0”

img.png

简写命名

很多用户都喜欢简写类名,但前提是要让人看懂你的命名才能简写哦!

img.png

16进制颜色代码缩写

有些颜色代码是可以缩写的,我们就尽量缩写吧,提高用户体验为主。

img.png

连字符CSS选择器命名规范

  1. 长名称或词组可以使用中横线来为选择器命名。
  2. 不建议使用“_”下划线来命名CSS选择器,为什么呢?
    • 输入的时候少按一个shift键;
    • 浏览器兼容问题 (比如使用_tips的选择器命名,在IE6是无效的)
    • 能良好区分JavaScript变量命名(JS变量命名是用“_”)
    • 这里有一篇破折号与下划线的详细讨论,英文::f点击查看 中文篇:f点击查看

      img.png

      不要随意使用Id

      id在JS是唯一的,不能多次使用,而使用class类选择器却可以重复使用,另外id的优先级优先与class,所以id应该按需使用,而不能滥用。

      img.png

      为选择器添加状态前缀

      有时候可以给选择器添加一个表示状态的前缀,让语义更明了,比如下图是添加了“.is-”前缀。

      img.png

      CSS命名规范(规则)

      常用的CSS命名规则

      • 头:header
      • 内容:content/container
      • 尾:footer
      • 导航:nav
      • 侧栏:sidebar
      • 栏目:column
      • 页面外围控制整体佈局宽度:wrapper
      • 左右中:left right center
      • 登录条:loginbar
      • 标志:logo
      • 广告:banner
      • 页面主体:main
      • 热点:hot
      • 新闻:news
      • 下载:download
      • 子导航:subnav
      • 菜单:menu
      • 子菜单:submenu
      • 搜索:search
      • 友情链接:friendlink
      • 页脚:footer
      • 版权:copyright
      • 滚动:scroll
      • 内容:content
      • 标签:tags
      • 文章列表:list
      • 提示信息:msg
      • 小技巧:tips
      • 栏目标题:title
      • 加入:joinus
      • 指南:guide
      • 服务:service
      • 注册:regsiter
      • 状态:status
      • 投票:vote
      • 合作伙伴:partner

      注释的写法:

      /* Header */ 内容区 /* End Header */

      Id的命名:

      1)页面结构

      • 容器: container
      • 页头:header
      • 内容:content/container
      • 页面主体:main
      • 页尾:footer
      • 导航:nav
      • 侧栏:sidebar
      • 栏目:column
      • 页面外围控制整体佈局宽度:wrapper
      • 左右中:left right center

      (2)导航

      • 导航:nav
      • 主导航:mainnav
      • 子导航:subnav
      • 顶导航:topnav
      • 边导航:sidebar
      • 左导航:leftsidebar
      • 右导航:rightsidebar
      • 菜单:menu
      • 子菜单:submenu
      • 标题: title
      • 摘要: summary

      (3)功能

      • 标志:logo
      • 广告:banner
      • 登陆:login
      • 登录条:loginbar
      • 注册:register
      • 搜索:search
      • 功能区:shop
      • 标题:title
      • 加入:joinus
      • 状态:status
      • 按钮:btn
      • 滚动:scroll
      • 标籤页:tab
      • 文章列表:list
      • 提示信息:msg
      • 当前的: current
      • 小技巧:tips
      • 图标: icon
      • 注释:note
      • 指南:guild
      • 服务:service
      • 热点:hot
      • 新闻:news
      • 下载:download
      • 投票:vote
      • 合作伙伴:partner
      • 友情链接:link
      • 版权:copyright

      注意事项::

      • 1.一律小写;
      • 2.尽量用英文;
      • 3.不加中槓和下划线;
      • 4.尽量不缩写,除非一看就明白的单词。

      CSS样式表文件命名

      • 主要的 master.css
      • 模块 module.css
      • 基本共用 base.css
      • 布局、版面 layout.css
      • 主题 themes.css
      • 专栏 columns.css
      • 文字 font.css
      • 表单 forms.css
      • 补丁 mend.css
      • 打印 print.css


标签: 编程 代码 css

admin 发布于  2015-6-4 23:55 

优秀的本地集成环境工具包-XAMPP Apache + MySQL + PHP + Perl 免费资源



什么是XAMPP?

XAMPP是最流行的PHP开发环境

XAMPP是完全免费且易于安装的Apache发行版,其中包含MySQL、PHP和Perl。XAMPP开放源码包的设置让安装和使用出奇容易。

同时也是跨平台的,支持Windows,apple OS ,Linux三大平台.


点击查看原图

v5.5.24/ v5.6.8 升级说明

更新PHP至5.5.24/5.6.8
最新的MySQL5.6.24到
更新的phpMyAdmin4.4.3
更新的OpenSSL到1.0.1m(OS X和Linux)
更新XAMPP欢迎页面(测试版)
修复字符集管理页面
新增OS X操作指南
PostgreSQL的PHP扩展启用SSL支持
新增PHP XMLRPC扩展
新增PHP扩展MSSQL


官方下载址:https://www.apachefriends.org/zh_cn/download.html


admin 发布于  2015-5-14 12:16 

JS常用的正则表达式大全 PHP

JS常用的正则表达式大全

"^\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*)?$"


java script验证表单时常用:

"^-[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


应用实例

用户名:
/^[a-zA-Z]{1}([a-zA-Z0-9]|[_]){4,19}$/

无符号字符串:
/^[^\s]{1}[^-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*$/

Email:
/^\w+([-+.]\w+)*@\w+([-.]\\w+)*\.\w+([-.]\w+)*$/

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

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

URL:
/^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&_~`@[\]\':+!]*([^<>\"\"])*$/

身份证:
/^\d{15}(\d{2}[A-Za-z0-9])?$/

货币:
/^\d+(\.\d+)?$/

数字:
/^\d+$/

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

QQ:
/^[1-9]\d{4,8}$/

整数:
/^[-\+]?\d+$/

实数:
/^[-\+]?\d+(\.\d+)?$/

英文:
/^[A-Za-z]+$/

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

密码(必须含有大写字母、小写字母、标点、数字中的至少两种。呵呵,这个比较变态吧~)
/^(([A-Z]*|[a-z]*|\d*|[-_\~!@#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/

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

用正则表达式限制只能输入中文: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,’’))"


<script language="java script">

//去左空格;
function ltrim(s){
return s.replace( /^\\s*/, "");
}
//去右空格;
function rtrim(s){
return s.replace( /\\s*$/, "");
}
//去左右空格;
function trim(s){
return rtrim(ltrim(s));
}
//是否为空值;
function IsEmpty(_str){
var tmp_str = trim(_str);
return tmp_str.length == 0;
}
//是否有效的Email;
function IsMail(_str){
var tmp_str = trim(_str);
var pattern = /^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$/;
return pattern.test(tmp_str);
}
//是否有效的数字;
function IsNumber(_str){
var tmp_str = trim(_str);
var pattern = /^[0-9]/;
return pattern.test(tmp_str);
}
//是否有效的颜色值;
function IsColor(color){
var temp=color;
if (temp=="") return true;
if (temp.length!=7) return false;
return (temp.search(/\\#[a-fA-F0-9]{6}/) != -1);
}
//是否有效的链接;
function IsURL(url){
var sTemp;
var b=true;
sTemp=url.substring(0,7);
sTemp=sTemp.toUpperCase();
if ((sTemp!="http://") target="_blank" ... #124;|(url.length<10)){
b=false;
}
return b;
}
//是否有效的手机号码;
function IsMobile(_str){
var tmp_str = trim(_str);
var pattern = /13\\d{9}/;
return pattern.test(tmp_str);
}

</script>


正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。


匹配中文字符的正则表达式: [u4e00-u9fa5]
评注:匹配中文还真是个头疼的事,有了这个表达式就好办了

匹配双字节字符(包括汉字在内):[^x00-xff]
评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)

匹配空白行的正则表达式: s*
评注:可以用来删除空白行

匹配HTML标记的正则表达式:<(S*?)[^>]*>.*?</1>|<.*? />
评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌套标记依旧无能为力

匹配首尾空白字符的正则表达式:^s*|s*$
评注:可以用来删除行首行尾的空白字符(包括空格、制表符、换页符等等),非常有用的表达式

匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
评注:表单验证时很实用

匹配网址URL的正则表达式:[a-zA-z]+://[^s]*
评注:网上流传的版本功能很有限,上面这个基本可以满足需求

匹配帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
评注:表单验证时很实用

匹配国内电话号码:d{3}-d{8}|d{4}-d{7}
评注:匹配形式如 0511-4405222 或 021-87888822

匹配腾讯QQ号:[1-9][0-9]{4,}
评注:腾讯QQ号从10000开始

匹配中国邮政编码:[1-9]d{5}(?!d)
评注:中国邮政编码为6位数字

匹配身份证:d{15}|d{18}
评注:中国的身份证为15位或18位

匹配ip地址:d+.d+.d+.d+
评注:提取ip地址时有用


匹配特定数字:
^[1-9]d*$    //匹配正整数
^-[1-9]d*$   //匹配负整数
^-?[1-9]d*$   //匹配整数
^[1-9]d*|0$  //匹配非负整数(正整数 + 0)
^-[1-9]d*|0$   //匹配非正整数(负整数 + 0)
^[1-9]d*.d*|0.d*[1-9]d*$   //匹配正浮点数
^-([1-9]d*.d*|0.d*[1-9]d*)$  //匹配负浮点数
^-?([1-9]d*.d*|0.d*[1-9]d*|0?.0+|0)$  //匹配浮点数
^[1-9]d*.d*|0.d*[1-9]d*|0?.0+|0$   //匹配非负浮点数(正浮点数 + 0)
^(-([1-9]d*.d*|0.d*[1-9]d*))|0?.0+|0$  //匹配非正浮点数(负浮点数 + 0)
评注:处理大量数据时有用,具体应用时注意修正

匹配特定字符串:
^[A-Za-z]+$  //匹配由26个英文字母组成的字符串
^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串
^[a-z]+$  //匹配由26个英文字母的小写组成的字符串
^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串
^w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

标签: 编程 代码 JS

admin 发布于  2015-5-11 06:40 

JavaScript获取网页高度宽度 PHP

JavaScript获取网页高度宽度

    JavaScript获取网页高度宽度 

function getScrollTop()
 {
 var scrollTop=0;
 if(document.documentElement&&document.documentElement.scrollTop)
 {
 scrollTop=document.documentElement.scrollTop;
 }
 else if(document.body)
 {
 scrollTop=document.body.scrollTop;
 }
 return scrollTop;
 }

 /********************
 * 取窗口可视范围的高度 
*******************/
function getClientHeight()
 {
 var clientHeight=0;
 if(document.body.clientHeight&&document.documentElement.clientHeight)
 {
 var clientHeight = (document.body.clientHeight<document.documentElement.clientHeight)?docum
 ent.body.clientHeight:document.documentElement.clientHeight; 
}
 else
 {
 var clientHeight = (document.body.clientHeight>document.documentElement.clientHeight)?docum
 ent.body.clientHeight:document.documentElement.clientHeight; 
}
 return clientHeight;
 }

 /********************
 * 取文档内容实际高度 
*******************/
function getScrollHeight()
 {
 return Math.max(document.body.scrollHeight,document.documentElement.scrollHeight);
 }

admin 发布于  2015-5-9 00:02 

多说自定义CSS动感头像和多说评论显示User Agent的那些小事 PHP

000.png#

# 前言
多说是一款社会化评论系统,她改变了网站与用户之间,用户与用户之间的互动方式。当然Disqus在大家心目中可能更加具有影响力,而我选择多说的原因也 很简单,一句话概括来说就是接地气的本地化评论托管服务。之前看到很多朋友自豪的使用WordPress时会选择多说作为第三方评论插件,民间的高手 们也根据官方的API开发出一些十分有趣的隐藏属性。因为现在自己使用GitHub+Hexo搭建的静态Blog,也希望通过多说自定义CSS和多说评论 显示User Agent让评论动感起来,文章记录了自己所执行的真实步骤,扩展阅读和原文中也会标注参考链接和注意点,embed.default.css embed.js文件托管在GitHub上,欢迎大家分享自己的经验,我们一起完善这些简单而有趣的小功能。

>
感谢多说团队和那些无私的开发者们

---

##
更新历史

2015
0424 - 初稿

阅读原文 - http://wsgzao.github.io/post/duoshuo/

扩展阅读

- duoshuo-mod - https://github.com/wsgzao/duoshuo-mod
-
出色的自定义效果展示 - http://dev.duoshuo.com/docs/4ff1cfd0397309552c000017
- HelloDog Index - http://wsgzao.github.io/index/#Hexo

---

##
多说自定义CSS

>
主要参考@V说,他的文章中还分享了额外9种特效,满足大家Duang的欲望哈

多说自定义CSS 让你的多说评论动感起来 - http://www.vsay.cn/one-more-custom-css-lets-you-say-comments-city.html

###
头像水平翻转

``` css
/*Head Start*/
#ds-thread #ds-reset ul.ds-comments-tabs li.ds-tab a.ds-current {
    border: 0px;
    color: #6D6D6B;
    text-shadow: none;
    background: #F3F3F3;
}

#ds-thread #ds-reset .ds-highlight {
    font-family: Microsoft YaHei, "Helvetica Neue", Helvetica, Arial, Sans-serif;
    ;font-size: 100%;
    color: #6D6D6B !important;
}

#ds-thread #ds-reset ul.ds-comments-tabs li.ds-tab a.ds-current:hover {
    color: #696a52;
    background: #F2F2F2;
}

#ds-thread #ds-reset a.ds-highlight:hover {
    color: #696a52 !important;
}

#ds-thread {
    padding-left: 30px;
}

#ds-thread #ds-reset li.ds-post,#ds-thread #ds-reset #ds-hot-posts {
    overflow: visible;
}

#ds-thread #ds-reset .ds-post-self {
    padding: 10px 0 10px 10px;
}

#ds-thread #ds-reset li.ds-post,#ds-thread #ds-reset .ds-post-self {
    border: 0 !important;
}

#ds-reset .ds-avatar, #ds-thread #ds-reset ul.ds-children .ds-avatar {
    top: 15px;
    left: -20px;
    padding: 5px;
    width: 36px;
    height: 36px;
    box-shadow: -1px 0 1px rgba(0,0,0,.15) inset;
    border-radius: 46px;
    background: #FAFAFA;
}

#ds-thread .ds-avatar a {
    display: inline-block;
    padding: 1px;
    width: 32px;
    height: 32px;
    border: 1px solid #b9baa6;
    border-radius: 50%;
    background-color: #fff !important;
}

#ds-thread .ds-avatar a:hover {
}

#ds-thread .ds-avatar > img {
    margin: 2px 0 0 2px;
}

#ds-thread #ds-reset .ds-replybox {
    box-shadow: none;
}

#ds-thread #ds-reset ul.ds-children .ds-replybox.ds-inline-replybox a.ds-avatar,
#ds-reset .ds-replybox.ds-inline-replybox a.ds-avatar {
    left: 0;
    top: 0;
    padding: 0;
    width: 32px !important;
    height: 32px !important;
    background: none;
    box-shadow: none;
}

#ds-reset .ds-replybox.ds-inline-replybox a.ds-avatar img {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50%;
}

#ds-reset .ds-replybox a.ds-avatar,
#ds-reset .ds-replybox .ds-avatar img {
    padding: 0;
    width: 50px !important;
    height: 50px !important;
    border-radius: 5px;
}

#ds-reset .ds-avatar img {
    width: 32px !important;
    height: 32px !important;
    border-radius: 32px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.22);
    -webkit-transition: .8s all ease-in-out;
    -moz-transition: .4s all ease-in-out;
    -o-transition: .4s all ease-in-out;
    -ms-transition: .4s all ease-in-out;
    transition: .4s all ease-in-out;
}

.ds-post-self:hover .ds-avatar img {
    -webkit-transform: rotateX(360deg);
    -moz-transform: rotate(360deg);
    -o-transform: rotate(360deg);
    -ms-transform: rotate(360deg);
    transform: rotate(360deg);
}

#ds-thread #ds-reset .ds-comment-body {
    -webkit-transition-delay: initial;
    -webkit-transition-duration: 0.4s;
    -webkit-transition-property: all;
    -webkit-transition-timing-function: initial;
    background: #F7F7F7;
    padding: 15px 15px 15px 47px;
    border-radius: 5px;
    box-shadow: #B8B9B9 0 1px 3px;
    border: white 1px solid;
}

#ds-thread #ds-reset ul.ds-children .ds-comment-body {
    padding-left: 15px;
}

#ds-thread #ds-reset .ds-comment-body p {
    color: #787968;
}

#ds-thread #ds-reset .ds-comments {
    border-bottom: 0px;
}

#ds-thread #ds-reset .ds-powered-by {
    display: none;
}

#ds-thread #ds-reset .ds-comments a.ds-user-name {
    font-weight: normal;
    color: #3D3D3D !important;
}

#ds-thread #ds-reset .ds-comments a.ds-user-name:hover {
    color: #D32 !important;
}

#ds-thread #ds-reset #ds-bubble {
    display: none !important;
}

#ds-thread #ds-reset #ds-hot-posts {
    border: 0;
}

#ds-reset #ds-hot-posts .ds-gradient-bg {
    background: none;
}

#ds-thread #ds-reset .ds-comment-body:hover {
    background-color: #F1F1F1;
    -webkit-transition-delay: initial;
    -webkit-transition-duration: 0.4s;
    -webkit-transition-property: all;
    -webkit-transition-timing-function: initial;
}
/*Head End*/
```

###
多说后台自定义CSS

>
设置步骤超级简单,登录多说后台->设置->基本设置->自定义CSS

![](


admin 发布于  2015-5-8 08:53