美文网首页
使用matchAll方法全局匹配{}内的内容

使用matchAll方法全局匹配{}内的内容

作者: 砂壶 | 来源:发表于2020-03-02 23:02 被阅读0次

    如何使用matchAll全局匹配{}内的内容?
    定义方法:

    let matchFn = (info) => {
            let reg = /\{(?<name>[^{}]+)\}/g;
            // 匹配出所字段
            let matches = [...info.matchAll(reg)];
            let matchesKey = [];
            matches.forEach(item => {
                let groups = item.groups;
                matchesKey.push(groups.name);
            });
            return matchesKey;
    };
    

    调用例子:

    matchFn('{a}{b}ccc{d}');
    

    运行结果为: ["a", "b", "d"]

    通过该方法即可获取大括号内匹配到的内容啦~~

    用这个方法要特别注意兼容性问题。
    这个方法还是个草案,在ios上是不支持的,如果要求兼容的话需要补丁,
    可以使用该npm包解决兼容性问题https://www.npmjs.com/package/string.prototype.matchall

    参考资料:
    MDN文档String.prototype.matchAll()

    short-coated-black-and-brown-puppy-in-white-and-red-polka-39317.jpg

    相关文章

      网友评论

          本文标题:使用matchAll方法全局匹配{}内的内容

          本文链接:https://www.haomeiwen.com/subject/iehgkhtx.html