js正则表达式小tips

RegExp的构造函数创建了一个正则表达式对象,用模式来匹配文本。
有两种方法可以创建一个正则对象:字面量和构造函数。

正则表达式字面量:

var re = /ab+c/;

在脚本加载后编译。若你的正则表达式是常量,使用这种方式可以获得更好的性能。

构造函数:

var re = new RegExp("ab+c");

使用构造函数,提供了对正则表达式运行时的编译。

当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 \)。比如,以下是等价的:

var re = new RegExp("\\w+");
var re = /\w+/;

示例:

RegExp("^1[34578]\\d{9}$")
/^1[34578]\d{9}$/
 
RegExp(/^1[34578]\d{9}$/)
/^1[34578]\d{9}$/
 
RegExp("^1[34578]\\d{9}$").test('123')
false
 
RegExp(/^1[34578]\d{9}$/).test('123')
false
 
RegExp(/^1[34578]\d{9}$/).test('13211111111')
true

注:
json不支持正则表达式,传值时需要转为字符串。

{
    "type": "form-input-item",
    "element": "input.detail_t2",
    "maxLength": 11,
    "validator": {
        "allowEmpty": false,
        "type": "regex",
        "regex": "^1[34578]\\d{9}$",
        "ERR": "请您输入正确的手机号"
    }
}

参考:
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/RegExp
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions

webpack-dev-server

简单来说,webpack-dev-server就是一个小型的静态文件服务器。

1、使用前需要先进行安装

npm install -g webpack  ##全局安装webpack
npm isntall -g webpack-dev-server ##全局安装webpack-dev-server

2、安装完成后我们就可以在项目根目录通过 webpack-dev-server 命令来启动开发服务器了

–port=8080:指定了服务器端口

生成微博秀页面

1、在使用要生成微博秀的账号登录状态下,打开:http://app.weibo.com/tool/weiboshow
2、根据需要设置后,复制下面生成的代码。

<iframe width="100%" height="550" class="share_self"  frameborder="0" scrolling="no" src="http://widget.weibo.com/weiboshow/index.php?language=&width=0&height=550&fansRow=2&ptype=1&speed=0&skin=1&isTitle=1&noborder=1&isWeibo=1&isFans=1&uid=3248367834&verifier=0fa7580b&dpc=1"></iframe>

3、粘贴至需要放置的位置。

以上 uid=3248367834verifier=0fa7580b 是对应的。只知道uid是不可以的~

Velocity Macro(宏)

定义宏和使用宏

#macro指令用于定义一个VTL模板的重复代码块——宏。下面是一个简单的定义宏的例子:

#macro( d )
#end

这段代码定义了一个宏,名字为d,没有参数。下面是使用这个宏的代码:

#d()

Velocity在遇到#d()的时候,会用”<tr><td></td></tr>”替代上面的#d()这一行。

宏的参数:
宏也可以带参数,而且是任意多个参数。不过,宏定义时有几个参数,宏调用时就要提供同样数目的参数。

#macro( d $name)
$name
#end

使用:

#d("name1")

宏的参数可以是以下VTL元素中的任意一种:引用、字符串字面值、数值字面值、整数范围(比如[1 .. 10]、[$start .. $end])、数组、布尔值true或者false。

内联的宏

当宏是在一个Velocity模板中定义时,这个宏(是inline的)只能被该模板使用,同一个网站下的其他模板是不能用的。如果是在一个Velocity宏模板库中定义的宏,就可以被任何同一网站下的模板使用。

其他一些注意点

宏必须在第一次使用它之前定义。当#Parse()一个模板文件时,尤其要注意这一点。

好的写法:

#macro(link $linkHref $linkId)
    <a href="$!linkHref"#if($linkId) id="$linkId"#end>$bodyContent</a>
#end

参考:
http://www.cnblogs.com/yuepeng/archive/2010/11/23/1885700.html
http://my.oschina.net/tinyframework/blog/221930

HTTP1.1协议详解

例:
请求行 GET /App1/1.html HTTP/1.1
GET:请求方式,默认的请求方式。其他常用的请求方式还有POST。

GET的特点:
把表单的请求的数据放在了请求的URI的后面。例:
/App1/c.html?username=sdsfds&password=234324
这样不好:暴露数据;请求行长度有限。

POST的特点(经常使用的):
借助HTML中的form表单。
<form action=”c.html” method=”post”>
请求参数出现在正文部分。长度木有限制。相对安全。
—————————
/App1/1.html:请求的资源的URI。
—————————

HTTP/1.1:客户端使用的协议的版本

例:
响应行 HTTP/1.1 200 OK
HTTP/1.1:服务器用的协议版本
200:正常响应码。

响应码代表服务器处理的结果的一种表示
200:正常
302/307:重定向
304:服务器的资源没有被修改
404:请求的资源不存在
500:服务器报错了
OK:响应码描述

请求消息头:向服务器传递附加信息
Accept:通知服务器,浏览器可以接受的MIME类型。(文件系统中用文件扩展名区分数据的类型。网络上用MIME类型来区分数据类型。Tomcat\conf\web.mxl)
MIME类型名称:大类型/小类型
Accept-Charset:通知服务器,浏览器支持的字符集
Accept-Encoding:通知服务器,浏览器能够解码的数据压缩方式。比如:gzip
Accept-language:通知服务器,所希望的语言

Host:请求的主机和端口
*Referer:是一个URL地址。取值是当前页面之前的那个页面地址的。防盗链
*Content-Type:通知服务器,请求正文的MIME类型。
取值:application/x-www-form-urlencoded默认值
对应的是form表单的enctype属性
If-Modified-Since:通知服务器,缓存的文件的最后修改时间。
User-Agent:通知服务器,浏览器类型.
Content-Length:表示请求消息正文的长度
Connection:表示是否需要持久连接。如果服务器看到这里的值为“Keep -Alive”,或者看到请求使用的是HTTP 1.1(HTTP 1.1默认进行持久连接

Cookie:这是最重要的请求头信息之一(会话有关)

响应消息头:
*Location:通知客户端,指示新的资源的位置(结合302/307来用。请求重定向)
Server:通知客户端,服务器的类型
*Content-Encoding:通知客户端,响应正文的压缩编码方式。常用的是gzip。
*Content-Length:通知客户端响应正文的数据大小
*Content-Type:通知客户端响应正文的MIME类型
*Refresh:让浏览器自动刷新。取值为整数(刷新的时间间隔,单位是秒)
Refresh:3
Refresh:3;URL=其他资源的URI
*Content-Disposition:通知客户端,以下载的方式打开资源。
Content-Disposition:attachment;filename=1.jpg
*****Set-Cookie:SS=Q0=5Lb_nQ; path=/search服务器端发送的Cookie(会话有关)

*Expires: -1 网页的有效时间。单位是毫秒
*Cache-Control: no-cache (1.1)
*Pragma: no-cache (1.0) 通知客户端不要缓存

转自:http://www.cnblogs.com/javahyj/p/5538533.html