Home  >  Q&A  >  body text

javascript - js 正则 字符串筛选

有一段字符串 如下

var a = "好弄[1f616][1f631][1f60f][1f61c]好浓[1f49d][1f602][1f628][1f637]"

请问一下 正则怎么筛选出 这个字符串里面的中文和[]里的内容呢

PHP中文网PHP中文网2749 days ago276

reply all(3)I'll reply

  • 伊谢尔伦

    伊谢尔伦2017-04-10 15:15:02

    jsvar a = "好弄[1f616][1f631][1f60f][1f61c]好浓[1f49d][1f602][1f628][1f637]";
    a.match(/[^\u0000-\u00FF\[\]]+|[^\[]+?(?=\])/g);
    
    

    简要说下,中文的范围一直很不好确定,这里就简单的用^\u0000-\u00FF代替了

    reply
    0
  • 巴扎黑

    巴扎黑2017-04-10 15:15:02

    javascriptvar a = "好弄[1f616][1f631][1f60f][1f61c]好浓[1f49d][1f602][1f628][1f637]";
    var arr1 = [], arr2 = [];
    
    a.replace(/\[(.*?)\]|([^\[]*)/g, function(p0, p1, p2) { if (p1) arr1.push(p1); if (p2) arr2.push(p2); });
    
    console.log(arr1, arr2);
    

    []的内容

    so 答案已更新

    这个字符串里面的中文

    so 沒必要考慮中文的範圍。

    reply
    0
  • PHPz

    PHPz2017-04-10 15:15:02

    在这个问题上,我觉得可以简单处理一下。

    var a = "好弄[1f616][1f631][1f60f][1f61c]好浓[1f49d][1f602][1f628][1f637]";
    var array = [];
    a.split(/\[|\]/g).map(function(value, key) {
        if(!!value){ 
            array.push(value);
        }
    });
    

    reply
    0
  • Cancelreply