auto.js向手机号中,随机插入随机数量的空格

业务需求

在某个APP的私信脚本中,需要发送手机号。
由于APP屏蔽了一定长度连续数字的输入,需要在手机号中随机插入空格,才能饶过平台的反垃圾机制。
因此,需要写一个向手机号中,随机插入空格的方法。
下面我们来看代码,示例中的手机号是随便写的。

业务代码

/*
 * @Author: 飞云
 * @Date: 2020-03-26 11:28:12
 * @LastEditTime: 2020-03-26 11:28:28
 * @Description: http://www.feiyunjs.com
 */

let str = '你好,加我微信聊聊吧|1 6 5 9 8 659 8 56';   //欲发送的话术

//循环测试100次
for (var i = 0; i < 100; i++) {
    let randLeng = random(4, 8);   //随机空格长度
    log(getPhone(randLeng))
}

//提取字符串中的手机号,并随机插入空格
function getPhone(randLeng) {
    let strArr = getNum(str.replace(/\s+/g, ""));      //默认不加1,即不会把提取出来的0去掉
    if (strArr.length > 0) {
        let phone = strArr.map(function (value, index, array) {
            if (checkPhone(value)) {
                return value;
            };
        })
        if (phone.length > 0) {
            let spaceArr = new Array();
            for (j = 0, len = randLeng; j < len; j++) {
                spaceArr.push(' ')
            }

            let phonoeArr = new Array();
            for (j = 0, len = phone[0].length; j < len; j++) {
                phonoeArr.push(phone[0][j])
            }

            let newArr = randomInsert(spaceArr, phonoeArr);
            return newArr.join("");
        };
    };
    return '';
};

//将一个数组随机插入到另一个数组,被插的数组顺序不变
function randomInsert(arr1, arr2) {
    arr1.forEach(value =>
        arr2.splice(Math.random() * arr2.length, 0, value))
    return arr2;
}

//取出字符串中,连续的数字
function getNum(Str, isFilter) {
    //用来判断是否把连续的0去掉
    isFilter = isFilter || false;
    if (typeof Str === "string") {
        // var arr = Str.match(/(0\d{2,})|([1-9]\d+)/g);
        //"/[1-9]\d{1,}/g",表示匹配1到9,一位数以上的数字(不包括一位数).
        //"/\d{2,}/g",  表示匹配至少二个数字至多无穷位数字
        var arr = Str.match(isFilter ? /[1-9]\d{1,}/g : /\d{2,}/g);
        //    log(arr);
        return arr.map(function (item) {
            //转换为整数,
            //但是提取出来的数字,如果是连续的多个0会被改为一个0,如000---->0,
            //或者0开头的连续非零数字,比如015,会被改为15,这是一个坑
            // return parseInt(item);
            //字符串,连续的多个0也会存在,不会被去掉
            return item;
        });
    } else {
        return [];
    }
}

//检测是否为手机号
function checkPhone(phone) {
    if (!(/^1[3456789]\d{9}$/.test(phone))) {
        return false;
    } else {
        return true;
    };
}

测试结果

11:14:06.651/D:  1   6 5 98659856
11:14:06.652/D:   16598 6 5 98 56
11:14:06.654/D:   16 59 86 5 9856
11:14:06.655/D:  16 5  9 8 6598 56
11:14:06.657/D:  1 6 59  8  65985 6
11:14:06.658/D: 1   659 865 9856
11:14:06.659/D:   1 6 5986 59856
11:14:06.661/D:  16598  659 85  6
11:14:06.662/D: 1659 865  98 56
11:14:06.664/D:   1659 865985    6
11:14:06.665/D: 1 659   86  59856
11:14:06.666/D:      16598 6598 5 6
11:14:06.668/D: 1  659865985  6
11:14:06.669/D: 16 598   659 8 5  6
11:14:06.671/D: 1 6598 659  856
11:14:06.672/D:  16  5986 5 9856
11:14:06.675/D:    1 659865 9 856
11:14:06.674/D:  1659   86  59 85 6
11:14:06.676/D: 165986 5 9 8 5  6
11:14:06.678/D:     1  65986 59 856
11:14:06.680/D: 16     59 86598  56
11:14:06.681/D:   16  5 986598 56
11:14:06.682/D:  165986 5 98 56
11:14:06.684/D: 1 6598  6 5 9 85  6
11:14:06.685/D: 1659  865   985 6
11:14:06.686/D: 165986  5 9 856
11:14:06.688/D:  1  6  5 986 59856
11:14:06.689/D:  1   65986 59856
11:14:06.691/D:   16 59 865   9856
11:14:06.692/D: 1  65986 5985 6
11:14:06.694/D:   1 6 59  86 59 856
11:14:06.695/D:  165986  5 985  6
11:14:06.696/D:  1  6 598659856
11:14:06.698/D:  165 9  8 65 98 56
11:14:06.699/D: 1659 86   5985    6
11:14:06.701/D:     16 59 86598 5 6
11:14:06.702/D:  165986 5 98  56
11:14:06.704/D:  1 6  59  86598  56
11:14:06.705/D: 16 598   659856
11:14:06.706/D: 1 65 98 6598 56
11:14:06.708/D: 165 98659 85  6
11:14:06.709/D: 16598 6 598     56
11:14:06.710/D:     16598659 8 56
11:14:06.712/D: 165986 59  8 56
11:14:06.713/D: 1659 865  98   5 6
11:14:06.715/D: 1 65     98659 8 56
11:14:06.716/D:  1659 8 6 598  56
11:14:06.717/D:  16  598 659856
11:14:06.719/D:  16 59 86 598   56
11:14:06.720/D: 165 98  6 5985    6
11:14:06.722/D: 1659  865 98 56
11:14:06.723/D: 1659 8 6 5 985 6
11:14:06.724/D: 1 659 86598 5  6
11:14:06.726/D: 16  598 65 9856
11:14:06.727/D:   165 9865 98  5 6
11:14:06.728/D:  16 5 98 65  9856
11:14:06.730/D:  16   598659 856
11:14:06.731/D:  16 59865 9 85 6
11:14:06.733/D: 1 6598 6  59  85  6
11:14:06.734/D:  1659 8 659 856
11:14:06.735/D: 1 6 598 65 9856
11:14:06.736/D:  165 98 65985  6
11:14:06.738/D: 16 59  8 659 85 6
11:14:06.739/D: 1  65 98 65 9  856
11:14:06.741/D: 16 59 8  659856
11:14:06.742/D: 1659 8 6    5 985 6
11:14:06.744/D: 1 65   986  59  856
11:14:06.745/D: 16598  65985  6
11:14:06.747/D:  1   659 8 6 598 56
11:14:06.748/D: 1659 865   985  6
11:14:06.749/D:  16598 6 59 8 56
11:14:06.751/D:   16 59 86 598 56
11:14:06.752/D:   165 98 65 9  856
11:14:06.754/D: 1 6 59 86 59 8 56
11:14:06.755/D:  1 6  598 65985 6
11:14:06.756/D: 1 6598 659  856
11:14:06.758/D:    1 65 98 65985  6
11:14:06.759/D: 1 659 8    6 59856
11:14:06.761/D: 16 598 6   5985 6
11:14:06.762/D: 165  9 865   985  6
11:14:06.764/D:   16 5 98  65 98 56
11:14:06.766/D: 1    6598 6  59856
11:14:06.767/D: 165  9 865985 6
11:14:06.768/D: 165  986598  5 6
11:14:06.769/D: 1 6598 6 5985 6
11:14:06.771/D: 1 659 86 59 8 56
11:14:06.772/D:   1659865 985  6
11:14:06.773/D: 1  6 5 9865 9 8 56
11:14:06.775/D: 1 659865  9 856
11:14:06.776/D: 1    6 59  8 659856
11:14:06.778/D: 165 9 8 6 59856
11:14:06.779/D:   1  6598659 856
11:14:06.780/D: 16598  65   9856
11:14:06.782/D:  1 6 598 6   59856
11:14:06.783/D:  16 5986 5 9  85 6
11:14:06.785/D:  16598  6 5  9856
11:14:06.786/D: 16  5 98 659856
11:14:06.789/D:   16  5 98659856
11:14:06.793/D:   16 5   986598  56
11:14:06.796/D: 165 9 8659  856

补充说明

例子写出来以后,经过测试,这里面的所有结果并不能完全饶过平台的风控。
但是这里面的思路和方法,还是有一定参考价值的。

1. 本站部分资源来源于用户上传和网络搜集,如有侵权请联系站长。
2. 官方交流QQ群291981338飞云脚本圈,欢迎加入。建议使用安卓手机或电脑申请。
3. 盗版,破解有损他人权益和违法作为,请各位会员支持正版。
4.如未特别申明,本站的技术性文章均为原创,未经授权,禁止转载/搬运等侵权行为。
飞云脚本 » auto.js向手机号中,随机插入随机数量的空格

发表评论

跟我学Auto.js Pro安卓全分辨率免ROOT引流脚本开发教程

立即报名