JS 문자열 이 정규 표현 식 에 맞 는 지 확인 합 니 다.

4302 단어 정규 표현 식
/**
 *              
 */
function matchStrings(pattern,path){
    //        ,?        ,*        ,**         
    var singleChar = '?';
    var anyChar = '*';
    var anyPathChar = '**';
    
    //
    if(pattern){
        if(pattern==anyPathChar || pattern==anyChar) return true;
        
        //     **,   ** (.*)
        pattern = pattern.replace('**','(.*)');
        // (.*)     ,            *,   * (.*)
        var arr = pattern.split('(.*)');
        var temp = '';
        for(var i=0;i<arr.length;i++){
            if(arr[i] && arr[i].trim().length>0){
                //      >1     **   ,     (.*)
                if(arr.length>1){
                    temp = temp + (arr[i].replace('*','(.*)') + '(.*)');
                }else{
                    temp = arr[i].replace('*','(.*)');
                }
            }
        }
        //     ?   ?,             
        temp = temp.replace('?','(.+)');
        
        var reg = new RegExp(temp);
        //   exec()         ,         。  ,   null。
        //     0                , 1     RegExpObject  1           (     ),
        // 2      RegExpObject   2           (     ),    
        var results = reg.exec(path);
        if(results){//          
            //     paths      ,    pattern a, path a.do     
            if(results[0]==path) return true;
          }
    }
    return false;
}

좋은 웹페이지 즐겨찾기