正则表达和cookie基础
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 </head> 7 <body> 8 <script type="text/javascript"> 9 //正则表达式是由普通字符及特殊字符组成的对字符串进行过滤的逻辑公式 10 //1、字面量的方式 11 var reg = /abc/; 12 //2、构造函数 13 var reg = new RegExp("abc"); 14 //3、test方法 正则表达式的方法,用来检测字符串中是否含有符合规则的字串,有返回true,无返回false。 15 var str = "abc"; 16 var flag = reg.test(str); 17 console.log(flag);// true 18 19 //修饰符 g i 20 21 //g 表示全局匹配 22 var reg = /abc/g; 23 var str = "abcabc"; 24 //match方法,字符串方法 25 console.log(str.match(reg));// ["abc", "abc"] 26 27 //i 表示忽略大小写 28 var reg = /abc/gi; 29 var str = "AbcABCabc"; 30 console.log(str.match(reg));// ["Abc", "ABC", "abc"] 31 32 //seach方法,用于查找符合规则的子串的位置,只返回第一个匹配的位置 33 var reg = /abc/; 34 var str = "12345abc"; 35 console.log(str.search(reg));//5 36 37 //split 以某某分割将一个字符串分割返回一个数组 38 var reg = /good/; 39 var str = "good good study"; 40 console.log(str.split(reg));//["", " ", " study"] 41 42 //replace 替换字符 43 var reg = /tmd/gi; 44 var str= "abc tmd abc TMD"; 45 console.log(str.replace(reg,"*"));//abc * abc * 46 47 //exec方法,正则表达式的方法将匹配的内容放到数组里,若不成功,赶回false 48 var reg = /good/g; 49 var str = "good good study"; 50 console.log(reg.exec(str));//["good", index: 0, input: "good good study", groups: undefined] 51 console.log(reg.exec(str)); 52 console.log(reg.exec(str)); 53 54 55 56 // .除了换行符之外的所有单个字符 57 var reg = /g..gle/gi; 58 var str = "goodleg--gle"; 59 console.log(reg.test(str));//true 60 61 // *重复多次匹配,匹配任意次0次到n次 62 var reg = /g*gle/gi; 63 var str = "ggggle"; 64 console.log(reg.test(str),str.match(reg));//true ["ggggle"] 65 66 // +至少有一次重复胖匹配 67 var reg = /g+gle/gi; 68 var str = "ggle"; 69 console.log(reg.test(str));//true 70 71 // ? 进行0次或1次匹配 72 var reg = /g?gle/gi; 73 var str = "ggggle"; 74 console.log(reg.test(str),str.match(reg));//true ["ggle"] 75 76 //[] 表示可以出现的范围[0-9] 77 var reg = /[0-9]/gi; 78 var str = "ab0c"; 79 console.log(reg.test(str));//true 80 81 // \w 数字字母下划线 等同于[0-9a-zA-Z_] \W 非数字字母下划线 82 var reg = /\w/gi; 83 var str = "abc13"; 84 console.log(reg.test(str),str.match(reg));//true (5) ["a", "b", "c", "1", "3"] 85 86 // \d 表示数字[0-9] \D 非数字 87 var reg = /\d/gi; 88 var str = "12345abc"; 89 console.log(reg.test(str),str.match(reg));//true (5) ["1", "2", "3", "4", "5"] 90 91 // \s匹配空格 92 var reg = /\s+/gi; 93 var str = "good good study"; 94 console.log(str.replace(reg,""));//goodgoodstudy 95 96 //{m,n} 至少匹配m次,至多匹配n次 {m,} {n} 97 var reg = /go{2,6}/gi; 98 var str = "gooogle"; 99 console.log(reg.test(str));//true 100 101 // /^匹配开始$/匹配结尾 102 var reg = /g^.+g$/gi; 103 var str = "gooogle"; 104 console.log(reg.test(str));//false 105 106 // | 或 107 var reg = /google|baidu|bing|yahoo/gi; 108 var str = "www.baidu.com"; 109 console.log(reg.test(str),str.match(reg));//true ["baidu"] 110 111 // ()分组 将内容作为一个整体进行匹配 112 var reg = /(google){4,6}/gi; 113 var str = "googleaaagooglegooglegooglegooglegooglegoogle"; 114 console.log(reg.test(str),str.match(reg));//true ["googlegooglegooglegooglegooglegoogle"] 115 console.log(RegExp.$1);//google 116 117 //$1 $2 118 var reg = /(.*)\s(.*)/; 119 var str = "taobao baidu"; 120 console.log(str.replace(reg,"$2 $1"));//baidu taobao 121 122 123 </script> 124 </body> 125 </html>
练习:
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 </head> 7 <body> 8 用户名:<input type="text" id="username" />(数字,字母,下划线组成的6-1位字符,且不能以数字开头) 9 <script type="text/javascript"> 10 var oInput = document.getElementById("username"); 11 oInput.onchange = function(){ 12 var val = this.value; 13 var reg = /^[a-zA-Z_]\w{5,14}$/; 14 if(reg.test(val)){ 15 console.log("格式正确"); 16 }else{ 17 console.log("格式错误,请重新输入!"); 18 } 19 } 20 </script> 21 22 </body> 23 </html>