语法和正则方法
//正则表达式 全都是操作字符串的,不能操作对象/*test方法:正则去匹配字符串,如果匹配成功就返回真,如果匹配失败就返回假;语法:正则.test(字符串)var str='abcdef';var re=/a/;console.log(re.test(str));//结果是truevar 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)); //第一个位置 bmatch:正则去匹配字符串,如果匹配不成功,就返回匹配成功的数组,如果匹配不成功,就返回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);
所以结果不用说了大家都知道选什么方法了。后续继续正则学习笔记(二).................................
新闻热点
疑难解答