正则学习笔记(一)

语法和正则方法

//正则表达式 全都是操作字符串的,不能操作对象
/*
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);

所以结果不用说了大家都知道选什么方法了。后续继续正则学习笔记(二).................................

posted @ 2014-11-04 14:42  ollie_sk8  阅读(287)  评论(0)    收藏  举报