javascript - 一个简单的js正则问题

查看:113
本文介绍了javascript - 一个简单的js正则问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

这是我的js代码:

function preg_match_all(rules, str){
    
    let results = [];
    
    //if(isEmpty(rules)) return results;
    let exp = eval(rules);
    
    let result;
    
    while( (result = exp.exec(str))!= null){  
         results.push(result);
    }
    
    return results;
    
}

let str = 'a[class=cl bbda pbm mbm]f';

let rules = '\[(.*?)\]';
let rarr = preg_match_all('/'+rules+'/ig', str);

dlog(rarr);

但输出没东西。

我用php写的:

$str = 'a[class=cl bbda pbm mbm]f';

$rules = "/\[(.*?)\]/isU";

preg_match_all($rules, $str, $out, PREG_SET_ORDER);
    
print_r($out);

输出:

Array (

[0] => Array
    (
        [0] => [class=cl bbda pbm mbm]
        [1] => class=cl bbda pbm mbm
    )

)

这正是我想要的效果,我的js代码出了什么问题呢?死活搞不出来

解决方案

代码有语法错误呗,JS执行遇到错误,后面就不执行了

function preg_match_all(reg, str){
    
    let results = [];
    
   // if(isEmpty(rules)) return results;
   var exp=reg;
    
    let result;
    
    while( (result = exp.exec(str))!= null){  
         results.push(result);
    }
    
    return results;
    
}

var str = 'a[class=cl bbda pbm mbm]f';
var rarr = preg_match_all(/\[(.*?)\]/g, str);

console.log(rarr)

这篇关于javascript - 一个简单的js正则问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆