月份: 2014-01

恭贺新春的书角flash网页特效

这次为大家分享的是新春佳节的喜庆flash特效。在其他网站上看到,就随手留下来了。flash文件如果涉及版权,版权归原作者所有。

HTML 代码:

<div style="right: 0px; width: 280px; position: absolute; top: 0px; height: 280px;">
<embed width="280" height="280" wmode="transparent" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" quality="High" src="http://img136.imageshack.us/img136/2639/newyearsk6.swf"/>
</div>

把该代码放到body标签下。

为了放在flash文件是失效也可以把flash文件下载到自己服务器上。

flash文件下载地址:http://pan.baidu.com/s/1dDoWHgP

Ajax表单提交插件jquery form

jQuery Form插件是一个优秀的Ajax表单插件,我们可以非常容易的使用它处理表单控件的值,清空和复位表单控件,附件上传,以及完成Ajax表单提交。jQuery Form有两个核心方法ajaxForm()和ajaxSubmit(),本文我们重点介绍ajaxSubmit()的应用。

在线演示:http://www.helloweba.com/demo/ajaxsubmit/

下载地址:http://www.helloweba.com/demo/downzip/ajaxsubmit.zip

HTML

首先我们载入jquery库和jquery.form.js插件。jquery.form.js插件的官网地址:http://www.malsup.com/jquery/form/

<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript" src="jquery.form.min.js"></script>

以上代码完成了表单提交前的验证以及提交后的处理。表单数据提交到submit.php后,我们可以根据实际情况通过submit.php检测数据、将数据写入数据库,返回操作结果等等操作,本文不再列出代码。

ajaxSubmit()选项设置

ajaxSubmit()提供了丰富的选项设置,我们根据使用的可能性大小进行列表,以供参考。

属性 描述
url Ajax请求将要提交到该url,默认是表单的action属性值
type 指定提交表单数据的方法(method):“GET”或“POST”。默认值:表单的method属性值(如果没有找到默认为“GET”)。
dataType 期望返回的数据类型。null、“xml”、“script”或者“json”其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQuery.httpData方法中去。下面的值被支持:
‘xml’:如果dataType == ‘xml’,将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定, 将传回responseXML值。
‘json’:如果dataType == ‘json’, 服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。。
‘script’:如果dataType == ‘script’, 服务器响应将求值成纯文本。。
默认值:null(服务器返回responseText值)
target 指明页面中由服务器响应进行更新的元素。元素的值可能被指定为一个jQuery选择器字符串,一个jQuery对象,或者一个DOM元素。
默认值:null。
beforeSubmit 表单提交前被调用的回调函数。“beforeSubmit”回调函数作为一个钩子(hook),被提供来运行预提交逻辑或者校验表单数据。如果“beforeSubmit”回调函数返回false,那么表单将不被提交。“beforeSubmit”回调函数带三个调用参数:数组形式的表单数据,jQuery表单对象,以及传入ajaxForm/ajaxSubmit中的Options对象。
默认值:null
success 表单成功提交后调用的回调函数。如果提供“success”回调函数,当从服务器返回响应后它被调用。然后由dataType选项值决定传回responseText还是responseXML的值。
默认值:null
clearForm 表示如果表单提交成功是否清除表单数据。默认值:null
resetForm 表示如果表单提交成功是否进行重置。默认值: null

jquery.form插件还提供了formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等方法。通常我们可以使用表单验证插件和jquery.form插件一起使用,效果更好。

<form id="my_form" action="submit.php" method="post">  
   <p>姓名:<input type="text" name="uname" id="uname" class="input"></p> 
   <p>性别:<input type="radio" name="sex" value="1" checked> 男 <input type="radio"  
   name="sex" value="2"> 女 </p> 
   <p>年龄:<input type="text" name="age" id="age" class="input" style="width:50px"></p> 
   <p style="margin-left:30px"><input type="submit" class="btn" value="提交"> 
   <span id="msg"></span></p> 
</form> 
<div id="output"></div>

表单中,要求输入姓名、性别和年龄,然后提交到submit.php处理,通常情况下,点击“提交”按钮后,页面会转到submit.php处理表单数据,而我们使用jquery.form插件后,页面并不会跳转,直接完成了一个ajax交互。

jQuery

我们很方便的调用jquery.form插件,利用ajaxSubmit()使得整个表单的ajax提交过程变得非常的简单。

$(function(){ 
    var options = {  
        beforeSubmit:  showRequest,  //提交前处理 
        success:       showResponse,  //处理完成 
        resetForm: true,  
        dataType:  'json'  
    };  
  
    $('#my_form').submit(function() {  
        $(this).ajaxSubmit(options);  
    });  
}); 
 
function showRequest(formData, jqForm, options) {  
    var uname = $("#uname").val(); 
    if(uname==""){ 
        $("#msg").html("姓名不能为空!"); 
        return false; 
    } 
     
    var age = $("#age").val(); 
    if(age==""){ 
        $("#msg").html("年龄不能为空!"); 
        return false; 
    } 
    $("#msg").html("正在提交..."); 
     
     
    return true;  
}  
  
function showResponse(responseText, statusText)  {  
    $("#msg").html('提交成功'); 
    var sex = responseText.sex==1?"男":"女"; 
    $("#output").html("姓名:"+responseText.uname+" 性别:"+sex+" 年龄:"+responseText.age); 
}  

以上代码完成了表单提交前的验证以及提交后的处理。表单数据提交到submit.php后,我们可以根据实际情况通过submit.php检测数据、将数据写入数据库,返回操作结果等等操作,本文不再列出代码。

ajaxSubmit()选项设置

ajaxSubmit()提供了丰富的选项设置,我们根据使用的可能性大小进行列表,以供参考。

属性 描述
url Ajax请求将要提交到该url,默认是表单的action属性值
type 指定提交表单数据的方法(method):“GET”或“POST”。默认值:表单的method属性值(如果没有找到默认为“GET”)。
dataType 期望返回的数据类型。null、“xml”、“script”或者“json”其中之一。dataType提供一种方法,它规定了怎样处理服务器的响应。这个被直接地反映到jQuery.httpData方法中去。下面的值被支持:
‘xml’:如果dataType == ‘xml’,将把服务器响应作为XML来对待。同时,如果“success”回调方法被指定, 将传回responseXML值。
‘json’:如果dataType == ‘json’, 服务器响应将被求值,并传递到“success”回调方法,如果它被指定的话。。
‘script’:如果dataType == ‘script’, 服务器响应将求值成纯文本。。
默认值:null(服务器返回responseText值)
target 指明页面中由服务器响应进行更新的元素。元素的值可能被指定为一个jQuery选择器字符串,一个jQuery对象,或者一个DOM元素。
默认值:null。
beforeSubmit 表单提交前被调用的回调函数。“beforeSubmit”回调函数作为一个钩子(hook),被提供来运行预提交逻辑或者校验表单数据。如果“beforeSubmit”回调函数返回false,那么表单将不被提交。“beforeSubmit”回调函数带三个调用参数:数组形式的表单数据,jQuery表单对象,以及传入ajaxForm/ajaxSubmit中的Options对象。
默认值:null
success 表单成功提交后调用的回调函数。如果提供“success”回调函数,当从服务器返回响应后它被调用。然后由dataType选项值决定传回responseText还是responseXML的值。
默认值:null
clearForm 表示如果表单提交成功是否清除表单数据。默认值:null
resetForm 表示如果表单提交成功是否进行重置。默认值: null

jquery.form插件还提供了formToArray()、formSerialize()、fieldSerialize()、fieldValue()、clearForm()、clearFields() 和 resetForm()等方法。通常我们可以使用表单验证插件和jquery.form插件一起使用,效果更好。

jQuery ui页面全屏滚动fullPage.js插件页面滚动时图文动画演示

如今我们经常能见到全屏网站,尤其是国外网站。

这些网站用几幅很大的图片或色块做背景,再添加一些简单的内容,显得格外的高端大气上档次。

比如
iPhone 5C 的介绍页面(查看),QQ浏览器的官网站(查看)。

如果你也希望你的网站能设计成全屏的,显得更上档次,你可以试试
fullPage.js。 

fullPage.js 是一个基于 jQuery 的插件,它能够很方便、很轻松的制作出全屏网站。

主要功能有: 

•支持鼠标滚动 

•支持前进后退和键盘控制 

•多个回调函数

•支持手机、平板触摸事件 

查看演示:http://www.dowebok.com/demo/2014/77/

下载地址:http://www.oschina.net/p/fullpage-js/similar_projects

juery有方向性的遮罩效果

<!DOCTYPE HTML>
<html lang="en-US">
<head>
  <meta charset="UTF-8">
  <title>label</title>
  <script type="text/javascript" src="http://code.jquery.com/jquery-1.8.2.min.js"></script>
</head>
<body>
  <div id="main">
  
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_1.jpg" width="216" height="300">
        <div class="desc">这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、</div>
      </div>
      <div class="title">鸣人</div>
    </div>
    
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_2.jpg" width="216" height="300">
        <div class="desc">这货是鸣人他爹、这货是鸣人他爹、这货是鸣人他爹、这货是鸣人他爹、这货是鸣人他爹、</div>
      </div>
      <div class="title">鸣人他爹</div>
    </div>
    
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_3.jpg" width="216" height="300">
        <div class="desc">这货是我爱罗、这货是我爱罗、这货是我爱罗、这货是我爱罗、这货是我爱罗、</div>
      </div>
      <div class="title">我爱罗</div>
    </div>
    
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_4.jpg" width="216" height="300">
        <div class="desc">这货是斑、这货是斑、这货是斑、这货是斑、这货是斑、这货是斑、这货是斑、</div>
      </div>
      <div class="title">斑</div>
    </div>
  
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_1.jpg" width="216" height="300">
        <div class="desc">这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、这货是鸣人、</div>
      </div>
      <div class="title">鸣人</div>
    </div>
    
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_2.jpg" width="216" height="300">
        <div class="desc">这货是鸣人他爹、这货是鸣人他爹、这货是鸣人他爹、这货是鸣人他爹、这货是鸣人他爹、</div>
      </div>
      <div class="title">鸣人他爹</div>
    </div>
    
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_3.jpg" width="216" height="300">
        <div class="desc">这货是我爱罗、这货是我爱罗、这货是我爱罗、这货是我爱罗、这货是我爱罗、</div>
      </div>
      <div class="title">我爱罗</div>
    </div>
    
    <div class="items">
      <div class="img">
        <img src="http://sandbox.runjs.cn/uploads/rs/246/t7vul5gq/label_4.jpg" width="216" height="300">
        <div class="desc">这货是斑、这货是斑、这货是斑、这货是斑、这货是斑、这货是斑、这货是斑、</div>
      </div>
      <div class="title">斑</div>
    </div>
  
  </div>
</body>
</html>
    	<style>*{
	margin:0px;
	padding:0px;
	font:12px/2 微软雅黑;
}
#main{
	width:960px;
	margin:20px auto;
}
.items{
	width:216px;
	border:1px solid #dcdcdc;
	overflow:hidden;
	float:left;
	margin:15px 15px 0 0;
	background-color:#fff;
}
.items .img{
	height:300px;
	overflow:hidden;
	position:relative;
}
.items .desc{
	height:270px;
	width:186px;
	padding:15px;
	position:absolute;
	top:-300px;
	left:0px;
	color:#fff;
	background-image:url(data:image/gif;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAFoEvQfAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAA1JREFUeNpjYmBgOAMAANsAzxM4pZ4AAAAASUVORK5CYII=);
}
.items .title{
	border-top:1px solid #dcdcdc;
	padding:7px 14px;
}</style>
	    		<script>/**
 * 效果来源于 http://www.jue.so/ 采用 KISSY 的 UI 实现
 * 以下是 jQuery 方法实现,当然原生 js 也不难实现、、
 */
$(function () {
  $(".items .img").hover(function (e) {
    var _this  = $(this), //闭包
        _desc  = _this.find(".desc").stop(true),
        width  = _this.width(), //取得元素宽
        height = _this.height(), //取得元素高
        left   = e.offsetX, //从鼠标位置,得到左边界
        top    = e.offsetY, //得到上边界
        right  = width - left, //计算出右边界
        bottom = height - top, //计算出下边界
        rect   = {}, //坐标对象,用于执行对应方法。
        _min   = Math.min(left, top, right, bottom), //得到最小值
        _out   = e.type == "mouseleave", //是否是离开事件
        spos   = {}; //起始位置

    rect[left] = function (epos) { //鼠从标左侧进入和离开事件
      spos = {"left": -width, "top": 0};
      if (_out) {
        _desc.animate(spos, "fast"); //从左侧离开
      } else {
        _desc.css(spos).animate(epos, "fast"); //从左侧进入
      }
    };

    rect[top] = function (epos) { //鼠从标上边界进入和离开事件
      spos = {"top": -height, "left": 0};
      if (_out) {
        _desc.animate(spos, "fast"); //从上面离开
      } else {
        _desc.css(spos).animate(epos, "fast"); //从上面进入
      }
    };

    rect[right] = function (epos) { //鼠从标右侧进入和离开事件
      spos = {"left": left,"top": 0};
      if (_out) {
        _desc.animate(spos, "fast"); //从右侧成离开
      } else {
         _desc.css(spos).animate(epos, "fast"); //从右侧进入
      }
    };
    
    rect[bottom] = function (epos) { //鼠从标下边界进入和离开事件
      spos = {"top": height, "left": 0};
      if (_out) {
        _desc.animate(spos, "fast"); //从底部离开
      } else {
        _desc.css(spos).animate(epos, "fast"); //从底部进入
      }
    };

    rect[_min]({"left":0, "top":0}); // 执行对应边界 进入/离开 的方法
  });
});</script>

在线预览:http://sandbox.runjs.cn/show/czgdrozy

代码地址:http://runjs.cn/code/czgdrozy

实例:jQuery弹性滑动导航菜单

jQuery弹性滑动导航菜单,导航下的标示横线随着鼠标经过移动。

代码如下:

<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8" />
<title>实例:jQuery弹性滑动导航菜单</title>
<style type="text/css">
body{ font-size:100%; font-family:"Microsoft YaHei","Arial"; background:#fff;}
#nav{ position:relative; width:832px; _width:835px; margin:100px auto 0 auto; border-bottom:2px #ddd solid;}
#nav .nav-menu{ height:50px;}
#nav .nav-menu a{ display:block; float:left; height:50px; padding:0 40px; line-height:50px; color:#666; font-size:16px; text-decoration:none;}
#nav .nav-current{ position:absolute; bottom:-2px; height:2px; overflow:hidden; background:#80b600;}
</style>
<script id="jquery_172" type="text/javascript" src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script type="text/javascript">
$(function(){

(function(){
var $navcur = $(".nav-current");
var $nav = $("#nav");
var current = ".current";
var itemW = $nav.find(current).innerWidth();	//默认当前位置宽度
var defLeftW = $nav.find(current).position().left;	//默认当前位置Left值

//添加默认下划线
$navcur.css({width:itemW,left:defLeftW});

//hover事件
$nav.find("a").hover(function(){
	var index = $(this).index();	//获取滑过元素索引值
	var leftW = $(this).position().left;	//获取滑过元素Left值
	var currentW = $nav.find("a").eq(index).innerWidth();	//获取滑过元素Width值
	$navcur.stop().animate({
		left: leftW,
		width: currentW
	},300);
	
},function(){
	$navcur.stop().animate({
		left: defLeftW,
		width: itemW
	},300)
})
})();

});
</script>
</head>
<body>
<div id="nav">
	<div class="nav-menu">
		<a href="#" class="current">首页</a>
		<a href="#">了解我们</a>
		<a href="#">产品展示</a>
		<a href="#">服务报价</a>
		<a href="#">最新消息</a>
		<a href="#">联系方式</a>
	</div>
	<div class="nav-current"></div>
</div>
</body>
</html>

使用google-code-prettify代码语法高亮显示

KindEditor中web文本编辑器中代码高亮使用的就是google-code-prettify ,它默认保存的时候,保存的内容是

<pre class="prettyprint lang-html">
    /*代码文件...*/
</pre>

而不是 其他语法高亮插件的结构。

<pre name="code">
    /*代码文件...*/
</pre>

所以用其他的语法提示比较麻烦,而我又比较的懒,所以直接用google-code-prettify了

使用说明:

首先添加文件

<link rel="Stylesheet" type="text/css" href="prettify/prettify.css" />
<script type="text/javascript"  src="prettify/prettify.js"></script>

当然如果你觉得默认样式不好看,可以自己修改,这里我就直接在HTML页面修改了,因为它默认不换行,所以显得不是那么的友好

<style type="text/css">
        pre {
            white-space: pre-wrap; /* css-3 */
            white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
            white-space: -pre-wrap; /* Opera 4-6 */
            white-space: -o-pre-wrap; /* Opera 7 */
            word-wrap: break-word; /* Internet Explorer 5.5+ */
        }
</style>

默认不显示行号,这里我们可以写如下的代码,使之显示行号,但是貌似不完整,大家如果有更好的方法告诉我哦

$(window).load(function () {
            $("pre").addClass("prettyprint linenums");
            prettyPrint();
})

google-code-prettify 下载地址:http://code.google.com/p/google-code-prettify/

jQuery.delay()方法简介

jQuery.delay()暂停的意思。例如:jQuery.delay(800) 代表暂停0.8秒。

这个方法从 jQuery 1.4 开始加入进来。中文文档中也早就有了,但是悄悄的添加进去的,很不起眼,不容易引起人的关注。

用法很简单,直接使用

$(‘#foo’).slideUp(300).delay(800).fadeIn(400);

这样的一句话,就可以在两次动画之间间隔800毫秒了。非常方便。

$(document).ready(function() {
	//vendor script
	$('#header')
	.css({ 'top':-50 })
	.delay(1000)
	.animate({'top': 0}, 800);
	
	$('#footer')
	.css({ 'bottom':-15 })
	.delay(1000)
	.animate({'bottom': 0}, 800);
});

这是一个例子,开始的时候隐藏页面的header 和footer 等页面加载后成功1秒钟后 在显示 header 和 footer


他除了可以控制动画之外,还能控制自定义队列:

delay(duration, [queueName])

第一个参数代表间隔时间 单位为毫秒。

第二个参数就是设置队列名的,如果不填,默认就是动画队列 fx。

介绍完啦,非常简单把?如果有兴趣,可以看看jQuery.delay()文档,以及jQuery中queue和dequeue的用法,或者看看如何自己写个控制队列来了解基本原理。

jQuery-1.4.1.chm手册下载地址

jQuery-1.4.1.chm手册下载地址

下载地址:

http://code.google.com/p/jquery-api-zh-cn/downloads/list

http://pan.baidu.com/s/1i3gGW9B

http://pan.baidu.com/s/1f9urW

在线地址:

http://shawphy.github.io/jquery-api/#delay

学习:

http://learn.jquery.com

CDN:

http://code.jquery.com/jquery-1.4.1.min.js

php正则表达式函数及网站经常要用正则表达式

php 正则表达式

<?php
 
//preg_match("正则表达式","字符串")用于在字符串中查找匹配项
 
$email = "987044391@qq.com";
if (preg_match("/^([a-zA-Z0-9])+([.a-zA-Z0-9_-])*@([.a-zA-Z0-9_-])+([.a-zA-Z0-9_-]+)+([.a-zA-Z0-9_-])$/",$email)){
	echo '匹配成功<hr />';
}else {
	echo '匹配失败<hr />';
}
 
//preg_quote("字符串") 在每个有正则表达式语法前面加入一个转义字符即\
 
$str = "php点点通是一个学习php的网站,(⊙o⊙)…";
echo preg_quote($str);
echo "<hr />";
 
//preg_split("正则","字符串")分割字符串
$php = "+php++点点通++++是好网站";
$field = preg_split("/\+{1,}/",$php);
foreach($field as $f){
	echo $f." ";
}
echo "<hr />";
//preg_grep("正则","字符串") 与数组匹配后返回新数组
$phpddt = array("php点点通","php100","呵呵","hahaha","phpchina");
$item = preg_grep("/^php/",$phpddt);
print_r($item);
 
echo "<hr />";
//preg_replace("正则","替换内容","原字符串")    很重要,很常用
$a = "欢迎光临http://www.lrxin.com/";  //给http开头的加上超链接
echo preg_replace("/http:\/\/(.*)\//","<a href=\"\${0}\">\${0}</a>","$a");
 
?>

平时做网站经常要用正则表达式

平时做网站经常要用正则表达式,下面是一些讲解和例子,仅供大家参考和修改使用:

"^\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标记的正则表达式:/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/
匹配首尾空格的正则表达式:(^\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 &lt;= 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标记的正则表达式:/&lt;(.*)&gt;.*&lt;/1&gt;|&lt;(.*) /&gt;/
匹配首尾空格的正则表达式:(^s*)|(s*$)
匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*
匹配网址URL的正则表达式:http://([w-]+.)+[w-]+(/[w- ./?%&amp;=]*)?
利用正则表达式限制网页表单里的文本框输入内容:
用正则表达式限制只能输入中文: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标记的正则表达式:/&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;/
匹配首尾空格的正则表达式:(^\s*)|(\s*$)
匹配IP地址的正则表达式:/(\d+)\.(\d+)\.(\d+)\.(\d+)/g //
匹配Email地址的正则表达式:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
匹配网址URL的正则表达式:http://(/[\w-]+\.)+[\w-]+(/[\w- ./?%&amp;=]*)?
sql语句:^(select|drop|delete|create|update|insert).*$
1、非负整数:^\d+$
2、正整数:^[0-9]*[1-9][0-9]*$
3、非正整数:^((-\d+)|(0+))$
4、负整数:^-[0-9]*[1-9][0-9]*$
5、整数:^-?\d+$
6、非负浮点数:^\d+(\.\d+)?$
7、正浮点数:^((0-9)+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$
8、非正浮点数:^((-\d+\.\d+)?)|(0+(\.0+)?))$
9、负浮点数:^(-((正浮点数正则式)))$
10、英文字符串:^[A-Za-z]+$
11、英文大写串:^[A-Z]+$
12、英文小写串:^[a-z]+$
13、英文字符数字串:^[A-Za-z0-9]+$
14、英数字加下划线串:^\w+$
15、E-mail地址:^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$
16、URL:^[a-zA-Z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\s*)?$
或:^http:\/\/[A-Za-z0-9]+\.[A-Za-z0-9]+[\/=\?%\-&amp;_~`@[\]\':+!]*([^&lt;&gt;\"\"])*$
17、邮政编码:^[1-9]\d{5}$
18、中文:^[\u0391-\uFFE5]+$
19、电话号码:^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$
20、手机号码:^((\(\d{2,3}\))|(\d{3}\-))?13\d{9}$
21、双字节字符(包括汉字在内):^\x00-\xff
22、匹配首尾空格:(^\s*)|(\s*$)(像vbscript那样的trim函数)
23、匹配HTML标记:&lt;(.*)&gt;.*&lt;\/\1&gt;|&lt;(.*) \/&gt;
24、匹配空行:\n[\s| ]*\r
25、提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|&gt;)?
26、提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
27、提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|&gt;)?
28、提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
29、提取信息中的中国手机号码:(86)*0*13\d{9}
30、提取信息中的中国固定电话号码:(\(\d{3,4}\)|\d{3,4}-|\s)?\d{8}
31、提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
32、提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
33、提取信息中的浮点数(即小数):(-?\d*)\.?\d+
34、提取信息中的任何数字 :(-?\d*)(\.\d+)?
35、IP:(\d+)\.(\d+)\.(\d+)\.(\d+)
36、电话区号:/^0\d{2,3}$/
37、腾讯QQ号:^[1-9]*[1-9][0-9]*$
38、帐号(字母开头,允许5-16字节,允许字母数字下划线):^[a-zA-Z][a-zA-Z0-9_]{4,15}$
39、中文、英文、数字及下划线:^[\u4e00-\u9fa5_a-zA-Z0-9]+$


	intege:"^-?[1-9]\\d*$",					//整数
	intege1:"^[1-9]\\d*$",					//正整数
	intege2:"^-[1-9]\\d*$",					//负整数
	num:"^([+-]?)\\d*\\.?\\d+$",			//数字
	num1:"^[1-9]\\d*|0$",					//正数(正整数 + 0)
	num2:"^-[1-9]\\d*|0$",					//负数(负整数 + 0)
	decmal:"^([+-]?)\\d*\\.\\d+$",			//浮点数
	decmal1:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*$",  	//正浮点数
	decmal2:"^-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*)$",  //负浮点数
	decmal3:"^-?([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0)$",  //浮点数
	decmal4:"^[1-9]\\d*.\\d*|0.\\d*[1-9]\\d*|0?.0+|0$",   //非负浮点数(正浮点数 + 0)
	decmal5:"^(-([1-9]\\d*.\\d*|0.\\d*[1-9]\\d*))|0?.0+|0$",  //非正浮点数(负浮点数 + 0)

	email:"^\\w+((-\\w+)|(\\.\\w+))*\\@[A-Za-z0-9]+((\\.|-)[A-Za-z0-9]+)*\\.[A-Za-z0-9]+$", //邮件
	color:"^[a-fA-F0-9]{6}$",				//颜色
	url:"^http[s]?:\\/\\/([\\w-]+\\.)+[\\w-]+([\\w-./?%&amp;=]*)?$",	//url
	chinese:"^[\\u4E00-\\u9FA5\\uF900-\\uFA2D]+$",					//仅中文
	ascii:"^[\\x00-\\xFF]+$",				//仅ACSII字符
	zipcode:"^\\d{6}$",						//邮编
	mobile:"^(13|15)[0-9]{9}$",				//手机
	ip4:"^(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)\\.(25[0-5]|2[0-4]\\d|[0-1]\\d{2}|[1-9]?\\d)$",	//ip地址
	notempty:"^\\S+$",						//非空
	picture:"(.*)\\.(jpg|bmp|gif|ico|pcx|jpeg|tif|png|raw|tga)$",	//图片
	rar:"(.*)\\.(rar|zip|7zip|tgz)$",								//压缩文件
	date:"^\\d{4}(\\-|\\/|\.)\\d{1,2}\\1\\d{1,2}$",					//日期
	qq:"^[1-9]*[1-9][0-9]*$",				//QQ号码
	tel:"^(([0\\+]\\d{2,3}-)?(0\\d{2,3})-)?(\\d{7,8})(-(\\d{3,}))?$",	//电话号码的函数(包括验证国内区号,国际区号,分机号)
	username:"^\\w+$",						//用来用户注册。匹配由数字、26个英文字母或者下划线组成的字符串
	letter:"^[A-Za-z]+$",					//字母
	letter_u:"^[A-Z]+$",					//大写字母
	letter_l:"^[a-z]+$",					//小写字母
	idcard:"^[1-9]([0-9]{14}|[0-9]{17})$"	//身份证

这样密集的负能量段子,看起来实在是太爽了!

1、又一天过去了。今天过得怎么样,梦想是不是更远了?

2、只要是石头,到哪里都不会发光的。

3、我有位家境一般的朋友,一直觉得如果自己有钱一定会更幸福。后来他妈做婴幼教育发财了。快十年后我见他,问:现在你倒是有钱了,你真的幸福吗?他回答:爽翻啦!我默默地走开了。

4、只有能力强会被当成纯技术人员;而光会社交拍马又会被认为没有真才实学;所以,要想在单位中脱颖而出,最重要的是有关系。

5、我发现没有任何一个煤矿工人靠挖煤多又快当上了煤老板。

6、我有个朋友,在几年前停止了抱怨和自怨自艾,开始努力改变自己。到今天,他的物质生活和精神状态都没有什么改善。

7、很多时候,乐观的态度和好听的话帮不了你。

8、回首青春,我发现自己失去了很多宝贵的东西。但我并不难过,因为我知道,以后会失去的更多。

9、秋天是收获的季节。别人的收获是成功与快乐,你的收获是认识到并不是每个人都会成功与快乐。

10、父母一直注重对我的品德教育。到了社会上,我按照父母教我的接人待物,却发现自己并不受人待见。

11、最靠得住的是金钱,最靠不住的是人心。

12、对今天解决不了的事情,也不必着急。因为明天还是解决不了。

13、青年靠什么混日子?头等青年靠出身,二等青年靠关系,三等青年靠天资,四等青年靠努力,五等青年耍文艺,六等青年打游戏,穷游,看美剧。

14、每次看到穷游日志的感受都是:那么穷就别TM出去浪了。

15、“不去努力然后告诉自己我根本就不想要”的痛苦,比“拼命努力后失败”的痛苦,要小得多。

16、没有钱包的充实,哪来内心的宁静。很多人都本末倒置了。

17、一些年轻人通过美剧、旅游和Youtube视频拥有了朴素的自由民主和人权观念;他们觉得自己工作烂,人缘差,没对象,都是中国的体制害的。

18、你只需看着别人精彩,老天对你另有安排。

19、普通人一生的四个阶段:心比天高的无知快乐与希望——愧不如人后的奋斗与煎熬——毫无回报的愤懑与失望——坦然的平凡和颓废。你走到哪一步了?

20、大部分成功靠得既不是厚积薄发的努力,也不是戏剧化的机遇,而是早就定好的出身和天赋。

21、小孩问富翁:叔叔为什么你这么有钱呢?富翁说:我给你讲个故事吧。很小的时候,

我注意到楼下的矿泉水卖一块钱,而三站地外的篮球场上,要卖一块五。我拿着一个大书包,从楼下买水带到球场去卖,卖一块二。一个月我挣了十块钱。小孩说:我好像明白了。富翁说:你明白个屁。后来我爸死了,把钱留给我了。

22、“为什么我总是感觉自己特别普通?”“可能是因为你确实比较普通吧。”

23、很多人不是心理疾病,而是心理残疾,治不好的。

24、我发现很多混得不好的人看得都很开。也不知道他们是因为看得透彻而不屑于世俗的成功,还是因为不成功而不得不看得开。

25、除了有钱人,世上还有两种人:其一是省吃俭用买奢侈品装逼,其二是省吃俭用也买不起奢侈品的。

26、一场说走就走的旅行归来后,除了该做的事情被拖延的更久了,什么都没有改变。

27、你努力后的成功,不能弥补你成功前的痛苦。

28、假如今天生活欺骗了你,不要悲伤,不要哭泣,因为明天生活还会继续欺骗你。

29、要是有个地方能出卖自己的灵魂换取物质享受就好了。

30、好身材的因素很多。不是节食和锻炼就能拥有好身材的。

31、每天显得无聊或寂寞了,去找朋友一起吃饭和逛,只不过是为了满足自己与人交往的需求,算不上是社交。

32、优秀的女生在脆弱的时候(比如分手,工作不如意),会需要比平时更多的关爱,于是会和更多的人交流。如果她在恢复正常后,回到了自己原来的圈子,不再理你,请你不要奇怪。

33、朋友,那不是懒,懒是可以克服的。你只是脑子比较弱(笨),没办法长时间经受高强度的思考,去搞逻辑太复杂的东西和处理太多的信息量。

34、有些年轻人,一毕业就到某些大型国企和机关中工作。每天没什么事儿,就是吃饭喝酒,福利好得不得了。人生还没有奋斗过就开始养老,自己的理想被丢在一旁,用民脂民膏来享受特权。对于这样的年轻人,我只想问你们四个字:哪投简历?

35、所有抱怨社会不公和制度的人翻译过来只有一句话:请给我金钱,女人和社会地位。

36、常听到别人说:我希望他/她有什么话当面说,不要在别后中伤人。一些人信以为真,而实际上,我的实践证明,当面说别人坏话,别人会非常愤怒,难堪。所以中伤别人一定要在背后。

37、其实找谁做女朋友都差不多,都是在不停地争吵。只不过一些人是和比较漂亮的女孩子在争吵。

38、爱情开始时都差不多。但当两个人平淡到左手牵右手时,是加班挤地铁还房贷然后给他农村父母寄钱假期在屋里大眼瞪小眼,还是开小车朝九晚五住大房子周末采购装点自己的小家出国旅游,区别就非常大了。

39、坏女人爱男人的钱和权;好女人爱男人因有钱和有权儿产生的自信、宽大、精力充沛、乐观进取。还好,殊途同归。

40、精神追求应当是物质追求得到满足后的自然反应。而不是在现实受挫后去寻求的安慰剂。

41、我的梦想就是一手拿着相机,一手拉着你,四处旅行。每天日落时的歇脚处都是我们的家。然后在三十多岁的时候还在初级职位上拿着微薄的薪水,和刚毕业的年轻人一起被呼来喝去。

42、那些能够彼此帮忙托关系的友谊,比那些天天在一起就是扯淡吃喝旅游的友谊,要强得多。

43、一些人追求卓越是因为他们天性如此,且能力出众。很多其他人却也喜欢跟着凑热闹。

44、那些人人羡慕的精英,其实过得并不如你想象的那样好。但肯定比你是强得多。

45、幸亏当事者迷,不然真的看清事实真相,很多人是承受不来的。

46、没钱没事业的人,才有时间去提高自己的人生境界。

47、年轻时总是缺乏对自己的正确认识。时而觉得自己能力超群,海阔天空,时而觉得一无是处,平凡无能。长大后,经历得多了,逐渐认清自己,才发现自己原来是一无是处,平凡无能。

48、成语造句:很多年轻人想要从工作中找寻快乐和人生的意义,真是缘木求鱼。

49、路上看到两个长得不好看也看起来很穷的男女热吻。我说两个物质生活质量很差的人,彼此相伴。朋友立刻反驳我:物质生活质量不行就不会幸福吗?他们如此相爱,比那些有钱又美但离婚的名人强多了!我说我根本没说他们不幸福呀,你努力反驳的,可能是你自己内心的声音吧。

50、社会学家研究表明:难看和没钱的男人,并不比高帅富更加靠谱。

51、普通人结婚的另一半其实并不欣赏自己,只不过找不到更好的人。他们真正欣赏喜欢的,另有其人。

52、爱情就是,如果没有更好的选择了,我才陪你到天荒地老。

53、他给你的爱会消逝,他给你的TIFFANY却不会贬值。

54、我问过很多女大学生这个问题:出国旅游和用名牌,真的这么重要吗?第一种回答是:不重要,但男朋友愿意而且能够给我买,很重要。第二种回答是:对啊,很重要啊!

55、错把放纵当潇洒,把颓废当自由,把逃避责任当做追求自我价值。不过是懒,怕吃苦,哪来那么多好听的理由。

56、有些女生觉得说自己是吃货能显得可爱,其实并没有这样的效果。

57、女生的冷暖自知什么的,在长得好看面前弱爆了。

58、一些女生在背后议论长得美家境好的女生,说对方生活轻浮,道德不高。她们说得有根有据,也很有道理,但听起来总是显得酸溜溜的。

59、我有一些漂亮又受过教育的姐妹,本来有机会嫁给官富二代,但很多被那些长得不错、有名校高学历、刚毕业在知名外企工作、加班到很晚还健身的男生所吸引。觉得人家上进又有潜力。五六年后,她们悔得肠子都青了。

60、我大学宿舍的一个女生,每天要花半个小时拌狗粮拿到外面去喂流浪狗。可她半个月才给家里打一次电话。她家是三线城市的工薪阶层。同学们都说她是爱心小天使。

61、几年前BBS有女生写道:不知为什么,每次有丑男看我,我都感觉他很猥琐,特别反感;但帅哥看我就感觉很好。今日又看到有男生写:我发现我老是喜欢抢着给漂亮的女生帮忙,不自觉地就会问她需要什么;但每次丑女让我帮忙,我就感觉:你自己不会干吗?——一些很明显的实话说出来,显得格外可爱。

62、美国人的生活就是像你在电影电视剧看的那样好。天天玩儿,随便搞搞就挣大钱,到处都是感人的细节,帅哥美女随便搞。导演们把这些日常生活拍下来,送到电视台电影院播放。

63、口中的道德和原则虽然重要,却总是要给手里的利益让道。

64、一提到钱,大家就不是那么亲热了。

65、你这么努力,忍受那么多寂寞和纠结,我们也没觉得你有多优秀。

66、人生就是这样,有欢笑也有泪水。一部分人主要负责欢笑,另一部分人主要负责泪水。

67、很多人不断地规划自己的人生,每天压力很大。其实不管你怎么过。都会后悔的。想想你这前几十年就明白了。

68、三十岁时,大部分人都卡在初级职位上。现有的工作升不上去,又无法承担转行的时间成本,更来不及再去读书。父母开始多病;自己收入有限,也没有存款。更大的痛苦,是看到身边没有背景但努力又聪明的人已经小有成就,有背景的人已经开始过上贵族生活了。

69、这个世界没有错,谁让你长得不好看又没钱。

70、有些妹子喜欢带上墨镜自拍。其实再戴上口罩,会显得更美。

71、多照照镜子,很多事情你就明白原因了。

72、我从来不会脑残地在网上晒自己买的名牌,因为我买不起。

73、小时候以为有钱人都很跋扈,心都是黑的。长大后才发现,很多有钱人都懂得很多,经历很丰富,做事儿很认真,为人很宽厚,理性,比穷人更好相处。

74、长相不行的人,为人也未必好。只不过由于长久寂寞的折磨,有时会发疯似地对人好。

75、26岁的他辞掉工作,和朋友建了支乐队,到各民办大学演出,反响平淡。30岁钱花完了,父亲得病要很多钱。“唱完这场就放弃,青春就到这里了。”甘肃七里河大学演唱会前,他留下眼泪说。一位女学生递上纸条:我喜欢你的歌,要坚持梦想。他把纸条攥紧决定坚持梦想。34岁,他欠了十几万的债,父亲也病逝了。

76、“老师您好,请问像我这样的,没有背景的北大毕业生应该如何定位自己?”“社会底层群众中受教育程度最高的一批人。”

77、如果你每天干的活明显多于别人,但自己很高兴还感觉得到器重,那么与其说你很有才干,不如说你的领导很会管人。

78、当别人和你说忙,是他/她要留时间给更重要的人。

79、“那些出身好能力强的人努力是为了成功,因为人家有可能会成功。我们努力是为了啥呢?”“为了活下去。”

80、基因是你给的,成长环境是你给的,社会阶层是你给的——还有脸埋怨自己孩子没出息。

81、有些人努力了一辈子,就是从社会的四流挤入了三流。

82、弱者都是这样,觉得生活中的无奈太多,自己又无力改变。

83、学术能力的缺乏并不意味着你就擅长混社会,说不定还不如在学校的表现。

84、你全力做到的最好,可能还不如别人随便搞搞。

85、如果你知道一些事情有意思,但不能去做而失落,那还好;要是觉得什么都没意思,应该就是抑郁症。

86、我要是有钱或者长得好看就好了。那样,即使我性格有点儿怪,也会有人愿意倾听我的想法和感受,跟我做朋友。

87、出身不好的限制也不光是平台问题。出身不好,说明你父母混的也不怎么样,也许你基因里就写着“不行”两个字。

88、经过十年的不断奋斗和磨砺,我终于从一个懵懂无知、敏感脆弱的少年,成长为了一个懵懂无知、敏感脆弱的青年。

89、为什么有些人要把追求精神满足和追求物质上的富足对立起来呢?你不幸福是因为你境界不高,你物质生活差是因为你能力不行。这完全是两回事儿。

90、成败是评判英雄的唯一标准。

91、优秀幸福的人是喜欢撒娇的,告诉别人自己这儿过得不好,那儿过得也不好。有些人当真的了,觉得别人天天是在宝马车中哭泣。

92、如果外貌好能够获得他人的关注,又有钱能够支持各种娱乐活动,谁会愿意每天呆在家里打游戏,刷微博,看电视剧。

93、如果你很忙,除了你真的很重要以外,更可能的原因是:你很弱,你没有什么更好的事情去做,你生活太差不得不努力来弥补,或者你装作很忙,让自己显得很重要。——史蒂夫·乔布斯

94、很难想象让敏感多变的年轻人去做Leader,进行重大的决策。这些人睡一觉起来,被别人说了几句,或者吃了顿好饭,人生观世界观就可以发生翻天覆地的变化。

95、尽量不要和比自己生活质量高的人起冲突,不论你是假装若无其事、努力争辩或者破口大骂,在别人看来,都是自己很可笑并且已经输了。

96、有些人,社交能力很差。只能和那些志同道合,彼此欣赏的人做朋友。而那些性格不随和,不喜欢自己,但是能给自己带来提升的人,他们没有能力搞定。

97、老板和领导很清楚哪些人能够得到晋升。对于那些不能的人,他们也会不断地鼓励和给她们希望。

98、以前每次看到网上的青年在微博校内大谈国事,我担心他们会干出些什么事情来。后来我发现他们还同时说着“明天一定要早起”,“这个假期要多看几本书”,“再也不能多吃了”,于是我放心了。

99、一些人的情商比较低,没法扮演好自己的社会角色,只能一直以最真实的自己面对世界。

100、人生的自由和无限可能性都是错觉。每个人都被社会压力,亲近的人和自己束缚的死死的,每天做着自己一定会去做的事情。

101、社会精英阶层一边啃着心灵鸡腿和心灵鸡胸,一边为我们送上了心灵鸡汤,说人生的价值并不在于你挣了多少钱和外在是否美。

102、出卖自己的灵魂和原则并不丢人,丢人的是没能卖一个好价钱。

103、我们所咒骂的那些品德败坏的人,其实不过是直接或间接地损害了我们的利益。

104、直到三十岁才知道,和不同的人说不同的话,表现出不一样的态度,是一种非常可贵的能力,而不是虚伪。

105、别减肥了,你丑不仅是因为胖。

106、有些人感慨:“自己岁数不小了,还没有成熟起来。”其实你们已经成熟起来了,你们成熟起来就这样。

107、只有拥有找男女朋友的能力和很多备胎,才能真正享受单身生活。

108、女生们宁肯做高帅富的备胎,也不肯接受屌丝的行为,从基因上保证了人类的进步。

109、Loser面对生活比自己好的人,心中生出了怨恨。

110、我去找心理医生看抑郁症。他听完我的陈述,说道:如果你说的都真的话,为什么你不去自杀呢?你这不是抑郁症;抑郁症是看事情悲观,本来好,却认为不行。你是本来就过得不如别人。

111、很多人发现自己在钱、权、女人的问题上比不过别人,于是开始试着在道德和人生境界上做文章。

112、碰到一个认识的人,想一起聊聊天。她说自己去香港和希腊玩了,又买了苹果和化妆品;我不知道怎么回应,因为我很久没有出去玩和买东西了。我又说我最近思考了人为什么活着和出身的问题,她也沉默,因为很久没有思考这样的问题。此后再也无话。

113、我追逐自己的梦想,别人说我幼稚可笑,但我坚持了下来。最后发现,原来还真是我以前幼稚可笑。

114、你年轻时一事无成;时而自怨自艾颓废堕落,时而咬紧牙关拼命努力,经营关系,但你的生活一直没有改善,你一直很痛苦,直到三十岁。”他听后兴奋地问:那三十岁之后呢?有转机吗?算命先生微微抬起头:三十岁后……你就开始习惯了。

115、很同情那些名校毕业生。这些人中的绝大多数,一生最大的成就就是高考的成功,一下超越了社会中的各种阶层,仿佛升到顶端。之后一辈子都在走下坡路。

116、哪怕抛掉出身的因素,我觉得你也未必干得过别人。

117、吹牛逼是一些人的天性。当对于一些话题自己乏善可陈时,就会搬弄外援:我有个朋友,拥有比你们更牛逼的经历。讲完后洋洋得意,潜台词是作为其朋友,自己肯定也不会差到哪去。

118、有时我们觉得别人误会了自己,其实是我们误会了自己。

119、所谓人生理想,就是支持你捱过每天的无聊与痛苦,最终没有实现的那个愿望。有了它,临死前是无穷的空虚和痛苦;没有它,这辈子都熬不下来。

120、好多重要又紧迫的事情,先干哪一件都会感觉别的事情被耽误了。所以还是先上会儿网吧。

121、很多时候别人对你好,并不是因为别人喜欢你,而是因为他们喜欢对人好。

122、女生有这样的梦想:某一天辛苦工作之后,在客户处认识一位优秀男人。他自信、Self-centered、成熟、幽默,又对人很caring。你们坠入爱河。他对你说:别工作了,我帮你开家咖啡馆吧!于是你的生活变了,每天在充满情调的咖啡馆里钻研咖啡甜点。你又开始相信爱情了。后来你发现男朋友开了十几家咖啡馆了。

123、年轻的男孩只希望自己的女朋友是美丽的。而随着他不断长大,阅历的不断积累,他终归会认识到:美丽并不是选择伴侣的全部,性感也很重要。

124、如果你是长得好看的话,在公车地铁上睡着了,头靠在旁边人的肩上,旁边的人会一直陪着你直到醒来。你要是长的丑的话,头一旦靠在旁边的人肩上,他会立即拍醒你,并温馨提醒你保管好财物。

125、“妈不是说你,你看你找那个对象,长得那么丑,话也说不明白,我要是和别人说这是我女婿我都觉得丢人”“他家有十几个亿。”“当然了,人也没必要活得那么虚荣,为什么非要在意别人的看法呢?更何况爱情本来就是盲目的,妈支持你!”

火狐浏览器截屏网页保存为图片插件Pearl Crescent Page Saver

火狐浏览器截屏网页保存为图片插件Pearl Crescent Page Saver

Pearl Crescent Page Saver
是一款火狐浏览器的截屏插件,他可以抓取屏幕可见区域以及整个网页保存为图片。

Pearl
Crescent Page Saver 便可帮你轻松完成网页保存为图片。

Pearl Crescent Page Saver
可选截取当前可见区域或是整个网页页面,并保存为图片,支持保存为 PNG 和 JPG
格式你可以通过设置来对截图功能、范围进行设置。值得一提的是,使用 Pearl Crescent Page Saver
截全屏时,只会截取网页部分,浏览器上的个人书签不会截取。安装完毕后,可以看到在 Firefox
浏览器的右上方有一个照相机形状的小按钮,

点击边上的三角箭头便可选择截取整个页面或是可见页面,还可在Page Saver
设置中更改截图热键、图片文件保存的路径、和默认的文件保存格式等等。

这款插件安装和使用都很方便,经过测试,安装后并没有对 Firefox
浏览器的运行速度有太大影响,推荐使用。

官方网站:http://pearlcrescent.com/

下载地址:http://pearlcrescent.com/products/pagesaver/

百度网盘:http://pan.baidu.com/s/1skjQpat

微信公众账号开发教程之微信浏览器HTTP_USER_AGENT判断

在微信公众平台的开发过程中,我们有时需要开发网页并判断是否是是来自微信浏览器访问,本文介绍如何做出这一判断。

一、$_SERVER数组

$_SERVER 是一个包含了诸如头信息(header)、路径(path)、以及脚本位置(script locations)等等信息的数组。这个数组中的项目由 Web 服务器创建。不能保证每个服务器都提供全部项目;服务器可能会忽略一些,或者提供一些没有在这里列举出来的项目。

在 $_SERVER 中,你也许能够,也许不能够找到下面的这些元素。注意,如果以命令行方式运行 PHP,下面列出的元素几乎没有有效的(或是没有任何实际意义的)。

‘PHP_SELF’
当前执行脚本的文件名,与 document root 有关。例如,在地址为 http://example.com/test.php/foo.bar 的脚本中使用 $_SERVER[‘PHP_SELF’] 将得到/test.php/foo.bar。__FILE__ 常量包含当前(例如包含)文件的完整路径和文件名。 从 PHP 4.3.0 版本开始,如果 PHP 以命令行模式运行,这个变量将包含脚本名。之前的版本该变量不可用。
‘argv’
传递给该脚本的参数的数组。当脚本以命令行方式运行时,argv 变量传递给程序 C 语言样式的命令行参数。当通过 GET 方式调用时,该变量包含query string。
‘argc’
包含命令行模式下传递给该脚本的参数的数目(如果运行在命令行模式下)。
‘GATEWAY_INTERFACE’
服务器使用的 CGI 规范的版本;例如,“CGI/1.1”。
‘SERVER_ADDR’
当前运行脚本所在的服务器的 IP 地址。
‘SERVER_NAME’
当前运行脚本所在的服务器的主机名。如果脚本运行于虚拟主机中,该名称是由那个虚拟主机所设置的值决定。
‘SERVER_SOFTWARE’
服务器标识字符串,在响应请求时的头信息中给出。
‘SERVER_PROTOCOL’
请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。
‘REQUEST_METHOD’
访问页面使用的请求方法;例如,“GET”, “HEAD”,“POST”,“PUT”
‘REQUEST_TIME’
请求开始时的时间戳。从 PHP 5.1.0 起可用。
‘REQUEST_TIME_FLOAT’
请求开始时的时间戳,微秒级别的精准度。 自 PHP 5.4.0 开始生效。
‘QUERY_STRING’
query string(查询字符串),如果有的话,通过它进行页面访问。
‘DOCUMENT_ROOT’
当前运行脚本所在的文档根目录。在服务器配置文件中定义。
‘HTTP_ACCEPT’
当前请求头中 Accept: 项的内容,如果存在的话。
‘HTTP_ACCEPT_CHARSET’
当前请求头中 Accept-Charset: 项的内容,如果存在的话。例如:“iso-8859-1,*,utf-8”。
‘HTTP_ACCEPT_ENCODING’
当前请求头中 Accept-Encoding: 项的内容,如果存在的话。例如:“gzip”。
‘HTTP_ACCEPT_LANGUAGE’
当前请求头中 Accept-Language: 项的内容,如果存在的话。例如:“en”。
‘HTTP_CONNECTION’
当前请求头中 Connection: 项的内容,如果存在的话。例如:“Keep-Alive”。
‘HTTP_HOST’
当前请求头中 Host: 项的内容,如果存在的话。
‘HTTP_REFERER’
引导用户代理到当前页的前一页的地址(如果存在)。由 user agent 设置决定。并不是所有的用户代理都会设置该项,有的还提供了修改 HTTP_REFERER 的功能。简言之,该值并不可信。
‘HTTP_USER_AGENT’
当前请求头中 User-Agent: 项的内容,如果存在的话。该字符串表明了访问该页面的用户代理的信息。一个典型的例子是:Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586)。
‘HTTPS’
如果脚本是通过 HTTPS 协议被访问,则被设为一个非空的值。
‘REMOTE_ADDR’
浏览当前页面的用户的 IP 地址。
‘REMOTE_HOST’
浏览当前页面的用户的主机名。DNS 反向解析不依赖于用户的 REMOTE_ADDR。
‘REMOTE_PORT’
用户机器上连接到 Web 服务器所使用的端口号。
‘REMOTE_USER’
经验证的用户
‘REDIRECT_REMOTE_USER’
验证的用户,如果请求已在内部重定向。
‘SCRIPT_FILENAME’
当前执行脚本的绝对路径

‘SERVER_ADMIN’
该值指明了 Apache 服务器配置文件中的 SERVER_ADMIN 参数。如果脚本运行在一个虚拟主机上,则该值是那个虚拟主机的值。
‘SERVER_PORT’
Web 服务器使用的端口。默认值为 “80”。如果使用 SSL 安全连接,则这个值为用户设置的 HTTP 端口。
‘SERVER_SIGNATURE’
包含了服务器版本和虚拟主机名的字符串。
‘PATH_TRANSLATED’
当前脚本所在文件系统(非文档根目录)的基本路径。这是在服务器进行虚拟到真实路径的映像后的结果。
‘SCRIPT_NAME’
包含当前脚本的路径。这在页面需要指向自己时非常有用。__FILE__ 常量包含当前脚本(例如包含文件)的完整路径和文件名。
‘REQUEST_URI’
URI 用来指定要访问的页面。例如 “/index.html”。
‘PHP_AUTH_DIGEST’
当作为 Apache 模块运行时,进行 HTTP Digest 认证的过程中,此变量被设置成客户端发送的“Authorization” HTTP 头内容(以便作进一步的认证操作)。
‘PHP_AUTH_USER’
当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的用户名。
‘PHP_AUTH_PW’
当 PHP 运行在 Apache 或 IIS(PHP 5 是 ISAPI)模块方式下,并且正在使用 HTTP 认证功能,这个变量便是用户输入的密码。
‘AUTH_TYPE’
当 PHP 运行在 Apache 模块方式下,并且正在使用 HTTP 认证功能,这个变量便是认证的类型。
‘PATH_INFO’
包含由客户端提供的、跟在真实脚本名称之后并且在查询语句(query string)之前的路径信息,如果存在的话。例如,如果当前脚本是通过 URLhttp://www.lrxin.com/php/path_info.php/some/stuff?foo=bar 被访问,那么 $_SERVER[‘PATH_INFO’] 将包含 /some/stuff。
‘ORIG_PATH_INFO’
在被 PHP 处理之前,“PATH_INFO” 的原始版本。

chrome谷歌浏览器模拟手机伪造地理位置设置教程

新建标签页,按“F12”打开控制台,点右下角的小齿轮,在弹出的窗口选择Overrides选项卡,把User Agent勾上,在下面的下拉框选择你喜欢的手机UA,这样你就能把Chrome伪装成手机浏览器了。

 

chrome谷歌浏览器模拟手机伪造地理位置设置教程1 

  如果再把把右边的Override Geolocation也勾上,就可以模拟位置了,但需要我们自己设置位置坐标。步骤如下:

 

  打开https://maps.google.com/ 找到你假冒的地点,右击鼠标,选择“这儿是什么?”? 然后搜索框就会显示当前的纬度和经度。(前一个是纬度,后一个是经度,我选了 18.292018 ,109.348437,是海南三亚的坐标)。根据刚才得到的经纬度设置成Lat = 18.292018, Lon = 109.348437。

 

PS:千万不要关闭控制台哦!

 

  直接在上边的标签页登录手机QQ空间,切换到触屏版,然后在发布说说的时候试着添加位置坐标,看坐标是否假冒成功了。我经过测试发现,国内的位置基本上都能正确识别,但国外的坐标就不行了。比方我尝试了Google山寨城总部以及目田女神像的位置坐标,均未能识别。如果识别成功了,赶紧写点“旅游”后的感受吧,不然功夫就白费了。

各个搜索引擎的User-Agent

baidu:Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html) 

Google:Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Sogou:Sogou web spider/4.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

Yahoo:Mozilla/5.0 (compatible; Yahoo! Slurp/3.0; http://help.yahoo.com/help/us/ysearch/slurp)

百度网页搜索 User-agent

Baiduspider 

无线搜索 User-agent

Baiduspider-mobile 

图片搜索User-agent 

Baiduspider-image 

视频搜索 User-agent

Baiduspider-video 

新闻搜索 User-agent

Baiduspider-news 

百度搜藏 User-agent

Baiduspider-favo 

百度联盟 User-agent

Baiduspider-cpro

谷歌User-agent

Googlebot

MSN User-agent

MSNBot

有道User-agent

YoudaoBot

搜狗User-agent

Sogou inst spider

Sogou spider2

Sogou blog

Sogou News Spider

Sogou Orion spider

即刻User-agent

JikeSpider

搜搜User-agent

Sosospider

360User-agent

360Spider

百度爬虫,第二条为百度图片爬虫

Baiduspider+(+http://www.baidu.com/search/spider.htm”)

Baiduspider-image

google爬虫,最后一条为google图片搜索爬虫

Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)

Googlebot/2.1 (+http://www.googlebot.com/bot.html)

Googlebot/2.1 (+http://www.google.com/bot.html)

Googlebot-Image/1.0

即刻搜索爬虫

Mozilla/5.0 (compatible; JikeSpider; +http://shoulu.jike.com/spider.html)

雅虎爬虫(分别是雅虎中国和美国总部的爬虫)

Mozilla/5.0 (compatible; Yahoo! Slurp China; http://misc.yahoo.com.cn/help.html”)

Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp”)

新浪爱问爬虫

iaskspider/2.0(+http://iask.com/help/help_index.html”)

Mozilla/5.0 (compatible; iaskspider/1.0; MSIE 6.0)

搜狗爬虫,第三条为搜狗图片爬虫

Sogou web spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

Sogou Push Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

Sogou Pic Spider/3.0(+http://www.sogou.com/docs/help/webmasters.htm#07)

搜搜爬虫

Sosospider+(+http://help.soso.com/webspider.htm)

网易有道爬虫

Mozilla/5.0 (compatible; YoudaoBot/1.0; http://www.youdao.com/help/webmaster/spider/; )

MSN爬虫

msnbot/1.0 (+http://search.msn.com/msnbot.htm)