正则表达式
正则表达式 什么是正则表达式?
复习字符串操作:
为什么用正则? 简化对于字符串的操作! 正则表达式:规则表达式 --- 把一组规则表达给计算机,让计算机来执行。 例如: 1390880230@qq.com 邮箱 www.google.com 网址 这些我们可以一眼识别出来这些,因为我们有一定的规则认知;对于计算机,同样如此。 正则能做什么? 操作字符串。--- 唯一能做的。 例如: var str='abcdef';
var re=new RegExp('a','i');
alert(re.text(str));
// re 为忽略大小写的,查找是否存在字符'a'的一个正则。 简写: var re=/a/i; (一般都使用简写,称作perl风格) 正则与search: if(window.navigator.userAgent.search(/firefox/i)!=-1){//证明找到了。} search(正则); 正则与match: //匹配,匹配出与符合正则要求的字符串。 1 var str="asd123 123 asd 2131"; 2 var re=/d/g; 3 alert(str.match(re)); // 这里的g是全局(global)的意思,这里会找出全部的; 否则只给出第一个。 // var re=/dd/g; 会出现两个一起的数字。 三个的话只出现前两个。 正则与replace:(用来替换) str.replace('a','T'); // 将字符串str中的a替换成T。但这里只会替换一个。 ---使用正则: 加上一个 g 即可,会替换全部的'a'。 应用:敏感词过滤等。 var re=/你们|我们|他们/g 。 字符类: var re=/1[abc]2/;
// == var re =/1a2| 1b2 | 1c2/;
--- 可以组合起来用。 应用:偷小说 过滤网页小说后台代码上的 标签。 var re=/<.+>/g; // .代表任意,+代表多个任意。 改成: var re=/<[^<>]+>/ ; // 含义: <后除了<>的任意多个字符,之后还有一个>的部分。 正则//中可写的东西: 转义字符:
还有大写的:
量词: {n,m} //最少n次,最多m次、 什么是量词? 出现的次数
比如:QQ的规则:
更多实例: 校验邮箱: 规则: 一串字母、数字、下划线 @ 一串英文或数字 .一串英文(这里有长度限制) 定义正则: var re=/w+@[0-9a-z]+.[a-z]{2,4}/; //这里注意应为.本身有含义,这里需要转义 但是,会出现问题: 我们会发现: 你好nihao@163.com 也是对的,(前面加了汉字) 再介绍一个东西: ^与$ 这里的^不出现再[]中, 其分别代表行首和行尾。 改变正则为: var re=/^w+@[0-9a-z]+.[a-z]{2,4}$/ ; 即可。 //补充1:行首和行尾字符也可以用来去掉行首尾的空格。(中间的空格保留) var re=/^s+/;
var re1=/s+$/;
//var re=/^s+ | s+$/g;;
//之后使用字符串.replace(re,‘’)。 //将符合正则的替换为空 //补充2:匹配中文: 汉字在计算机中采用utf-8编码 [u4e00-u9fa5]; u代表utf8编码, 4e00是第一个汉字的utf-8编码。 //补充3:单词边界:b 这里因为需要使用变量,所以使用回最开始的定义正则方式: 定义: var re=new RegExp('b'+sClass+'b','i'); 总结:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |