正则
正则默认规则
匹配成功就结束,不会继续匹配,区分大小写
*、+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配。
例如,您可能搜索 HTML 文档,以查找括在 H1 标记内的章节标题。该文本在您的文档中如下:
<H1>Chapter 1 - 介绍正则表达式</H1>
贪婪:下面的表达式匹配从开始小于号 (<) 到关闭 H1 标记的大于号 (>) 之间的所有内容。
/<.*>/
非贪婪:如果您只需要匹配开始和结束 H1 标签,下面的非贪婪表达式只匹配 <H1>。
/<.*?>/
如果只想匹配开始的 H1 标签,表达式则是:
/<\w+?>/
通过在 *、+ 或 ? 限定符之后放置 ?,该表达式从"贪心"表达式转换为"非贪心"表达式或者最小匹配。
正则校验QQ
正则表达式
1、什么是正则表达式:
能让计算机读懂的字符串匹配规则。
2、正则表达式的写法:
var re=new RegExp('规则', '可选参数');
var re=/规则/参数;
3、规则中的字符
1)普通字符匹配:
如:/a/ 匹配字符 ‘a’,/a,b/ 匹配字符 ‘a,b’
2)转义字符匹配:
\d 匹配一个数字,即0-9
\D 匹配一个非数字,即除了0-9
\w 匹配一个单词字符(字母、数字、下划线)
\W 匹配任何非单词字符。等价于[^A-Za-z0-9_]
\s 匹配一个空白符
\S 匹配一个非空白符
\b 匹配单词边界
\B 匹配非单词边界
. 匹配一个任意字符,除了换行符‘\n’和回车符‘\r’
\1 重复子项
4、量词:对左边的匹配字符定义个数
? 出现零次或一次(最多出现一次),或指明一个非贪婪限定符
+ 出现一次或多次(至少出现一次)
* 出现零次或多次(任意次)
{n} 出现n次
{n,m} 出现n到m次
{n,} 至少出现n次
5、任意一个或者范围
[abc123] : 匹配‘abc123’中的任意一个字符
[a-z0-9] : 匹配a到z或者0到9中的任意一个字符
6、限制开头结尾
^ 以紧挨的元素开头
$ 以紧挨的元素结尾
7、修饰参数:
g: global,全文搜索,默认搜索到第一个结果接停止
i: ingore case,忽略大小写,默认大小写敏感
m: multiple lines,多行搜索(更改^ 和$的含义,使它们分别在任意一行对待行首和行尾匹配,而不仅仅在整个字符串的开头和结尾匹配)
8、常用函数
1)、test
用法:正则.test(字符串) 匹配成功,就返回真,否则就返回假
2)、search
用法:字符串.search(正则) 匹配成功,返回位置,否则返回-1
3)、match
用法: 字符串.match(正则);匹配成功,就返回匹配成功的数组,否则就返回null
4)、replace
用法:字符串.replace(正则,新的字符串) 匹配成功的字符去替换新的字符
本地存储
本地存储分为cookie,以及新增的localStorage和sessionStorage
1、cookie 存储在本地,容量最大4k,在同源的http请求时携带传递,损耗带宽,可设置访问路径,只有此路径及此路径的子路径才能访问此cookie,在设置的过期时间之前有效。
jquery 设置cookie
$.cookie('mycookie','123',{expires:7,path:'/'});
jquery 获取cookie
$.cookie('mycookie');
2、localStorage 存储在本地,容量为5M或者更大,不会在请求时候携带传递,在所有同源窗口中共享,数据一直有效,除非人为删除,可作为长期数据。
//设置:
localStorage.setItem("dat", "456");
localStorage.dat = '456';
//获取:
localStorage.getItem("dat");
localStorage.dat
//删除
localStorage.removeItem("dat");
3、sessionStorage 存储在本地,容量为5M或者更大,不会在请求时候携带传递,在同源的当前窗口关闭前有效。
localStorage 和 sessionStorage 合称为Web Storage , Web Storage支持事件通知机制,可以将数据更新的通知监听者,Web Storage的api接口使用更方便。
iPhone的无痕浏览不支持Web Storage,只能用cookie。
cookie
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>cookie</title>
<style type="text/css">
body{
margin:0;
}
.pop{
width:400px;
height:300px;
background-color:#fff;
border:1px solid #ccc;
position:fixed;
left:50%;
top:50%;
margin-left:-200px;
margin-top:-250px;/*起始放在屏幕上方*/
z-index:9999;
opacity:0;
filter:alpha(opacity=0);
}
.pop span{
float:right;
font-size:30px;
cursor:pointer;
}
.mask{
width:100%;
height: 100%;
background-color:#000;
opacity:0.6;
filter:alpha(opacity=60);
position:fixed;
z-index:9990;
left:0;
top:0
}
.pop_con{
display:none;
}
.hasknow{
text-align:center;
cursor:pointer;
margin-top:100px;
}
</style>
<script type="text/javascript" src="JS/jquery-1.12.4.min.js"></script>
<script type="text/javascript" src="JS/jquery.cookie.js"></script>
<script type="text/javascript">
//http:/localhost:8888/demo192_cookie.html
$(function () {
var read = $.cookie('hasread');
alert(read);//undefined
if(read == underfined){
$('.pop_con').show();
//从上向下(-250到-150)+ 淡入的动画
$('.pop').animate({marginTop:-150,opactity:1});
}
$('.hasknow').click(function () {
$.cookie('hasread','ok',{expirs:7,path:'/'});
$('.pop_con').hide();
})
})
</script>
</head>
<body>
<div class="pop_con">
<div class="pop">
<span>×</span>
<p>我们网站有优惠,赶紧行动吧!亲!</p>
<p class="hasknow">我知道了</p>
</div>
<div class="mask"></div>
</div>
<h1>网站首页</h1>
</body>
</html>