智能社JavaScript视频教程

智能社JavaScript视频教程

5 (176人评价)
  • 课时:(32)

  • 学员:(2871)

  • 浏览:(207429)

  • 加入课程

32 - JS中的正则表达式的笔记

相关课时: 笔记详情:

正则表达式基础-1

复习字符串操作

search 查找 没到找返回-1

substring 获取子字符串 不包括结束位置

charAt 获取某个字符 

split 分割字符串,获得数组

找出字符串中的所有数字

用传统字符串操作完成

用正则表达式完成

var str='12 fff 468 er254 4234 -=-=fa14';

alert(str.match(/\d+/g));

//选出所有的数字

普通的找法:

var arr=[];

var tmp='';

for(var i=0;i<str.length;i++)

{

if(str.charAt(i)>='0' && str.charAt(i)<='9')

{

tmp+=str.sharAt(i);

}else{

if(tmp)

{

arr.push(tmp);

tmp='';

}

}

}

if(tmp)

{

arr.push(tmp);

tmp='';

}

alert(arr);//选出所有数字

正则表达式基础-2 

什么是正则表达式

什么叫“正则” 规则表达式

规则、模式

强大的字符串匹配工具

是一种正常人类很难读懂的文字

RegExp对象

JS风格——new RegExp("a", "i")

perl风格——/a/i

字符串与正则配合——1

search

字符串搜索

返回出现的位置

忽略大小写:i——ignore

判断浏览器类型

match 把所有匹配的东西全都取出来

var str='adfa 26 41425 daf'

var re=/\d/; // \d转义

alert(str.search(re));找第一个出现的数字 5因为2在第5的位置

var str='adfd 34 656 vad33';

var re=/\d+/g;  //global 找到全部数字3,4,6,5,6,3,3 不加g只会选3 加+ 34,656,33

alert(str.match(re));

获取匹配的项目

量词:个数

+:若干(多少都可以)

量词:+

量词变化:\d、\d\d和\d+

合局匹配:g——global

例子:找出所有数字

replace

替换所有匹配

返回替换后的字符串

例子:敏感词过滤

var str='abc aaa erw';

var re=/a/g; //正则

alert(str.replace('a', '0'));//如果不配合正则只替了第一个a

敏感词过滤:

window.onload=function(){

var oTxt1=document.getElementById('txt1');

oTxt2=document.getElementById('txt2');

oBtn=document.getElementById('btn1');

oBtn.onclick=function()

{

var re=/北京|百度|淘宝/g;

oTxt2.value=oTxt1.value.replace(re,'***');

 

}

}

字符串——1

元字符——方括号

任意字符

[abc]pc 或的意思

apc bpc cpc

var str='apc xpc ppc bpc spc tpc';

var re=/[apx]pc/g; apc xpc ppc

alert(str.match(re));

例子:o[usb]t——obt、ost、out

范围

[a-z]、[0-9]

例子:id[0-9]——id0、id5

排除

[^a]

例子:o[^0-9]t——oat、o?t、ot

 

字符串——2

组合

[a-zO-9A-Z]

实例:偷小说

过滤HTML标签

自定义innerText方法

转义字符

.(点)——任意字符 尽量不用

\d、数字[0-9]

\w、英文、数字、下划线 [a-z0-9_]

\s、 空白字符

\D、除了[^0-9]

\W、除了英文、数字、下划线 [^a-z0-9_]

\S 非空白字符

过滤HTML标签:

<除了<>以外的字符>

window.onload=function(){

var oTxt1=document.getElementById('txt1');

oTxt2=document.getElementById('txt2');

oBtn=document.getElementById('btn1');

oBtn.onclick=function()

{

var re=/<[^<>]+>/g;

oTxt2.value=oTxt1.value.replace(re,'');

}

}

量词

什么是量词 个数

固定电话8位数

01234567 

[1-9]\d{7} 第一位1-9

出现的次数

{n,m},至少出现n次,最多m次

例子:查找QQ号 [1-9]\d{4,10}

常用量词

{n,} 至少n次

* 任意次{0,}

? 零次或一次{0,1}

+ 一次或任意次[1,]

{n} 正好n次

? 零次或一次{0,1} 可有可无

010-85954152-102 区号和分机号

(0\d{2,3}-)?[1-9]\d{7}(-\d{1,5})?

常用正则例子

表单校验实例

校验邮箱

行首行尾

校验邮箱:

一串英文、数字、下滑线@一串英文、数字.一串英文

转\w+@[a-z0-9]+\.[a-z]+

window.onload=function(){

var oTxt=document.getElementById('txt1');

oBtn=document.getElementById('btn1');

oBtn.onclick=function()

{

var re=/^\w+@[a-z0-9]+\.[a-z]+$/i;

if(re.test(oTxt.value))

{

alert('合法的邮箱');

}else

{

alert('你丫写错了');

}

};

};

test 字符串一部分符合要求,就是true

 

^ 行首

$  行尾

1 1

你感兴趣的课程

编程开发 21天学通javascript
4万+浏览/ 910学员/ 4评分
免费
编程开发 AJAX核心技术教学
3万+浏览/ 367学员/ 4.8评分
免费
编程开发 javascript课程
3万+浏览/ 483学员/ 5评分
免费