语法和正则方法
//正则表达式 全都是操作字符串的,不能操作对象 /* test方法:正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假; 语法:正则.test(字符串) var str='abcdef'; var re=/a/; console.log(re.test(str));//结果是true var str='abcdef'; var re=/gh/; console.log(re.test(str));//结果是false d数字 D 非数字 s空格 S 非空格 w 字符 W非字符 search 方法 :用正则去匹配字符串 ,如果匹配成功则返回字符串的位置,如果不成功则返回-1 语法:字符串.search(正则) 正则默认是区分大小写的,如果要不区分大小写要加标识i, i(不区分大小写) var str="abcdef"; var re=/B/i; console.log(str.search(re)); //第一个位置 b match:正则去匹配字符串,如果匹配不成功,就返回匹配成功的数组,如果匹配不成功,就返回null 正则默认规定:正则匹配成功就会结束,不会继续匹配,如果想全部查找加标识g,g(全局匹配) 语法:字符串.match(正则) 量词:匹配不确定的位数 "+"至少出现一次(n>=1) */
正则的优势:为我们偷懒指出了方向,略势我还是觉得丫太难记了
继续上一篇取字符的例子。
传统方式:做一个取数字的函数(下边代码)
var str="1212dasdad21jif009fajf090adv00"; function findNum(str){ var arr=[]; var tmp=''; for(var i=0;i<str.length;i++){ var oStr=str.charAt(i); if(oStr<='9'&&oStr>='0'){ //是数字执行下边操作 tmp+=oStr; }else{ //非数字执行下面操作 if(tmp){ arr.push(tmp); tmp=''; //清空变量,为遍历下面的字符串使用; } } } //循环结束之后再次判断,因为末尾是数字的话,循环结束后只会走是数字的操作,而添加到数组里的这个动作就没有机会走了。 if(tmp){ arr.push(tmp); tmp=''; //最后一次清空变量 } //返回结果 return arr; }
正则做一个取数字的方法:
var str="1212dasdad21jif009fajf090adv00"; function fidNum(str){ var re=/d+/g; //全局查找 数字 最少出现一次 console.log(str.match(re)); } fidNum(str);
所以结果不用说了大家都知道选什么方法了。后续继续正则学习笔记(二).................................