JS字符串操作

去除ie注释

function ieNoteFilter(str) {

    var reg = /<!--\[if\s+gte\s+mso\s+9\]>(?:(?!<!\[endif\]-->)[\s\S])*<!\[endif\]-->/gi;

   if (str) {

        return str.replace(reg, "");

   else {

       return '';

   }

}

去除富文本格式

/*

 * 去除富文本格式

 * @param str {string} - html

 * @returns {string} - 去除富文本格式的文本

 */

function  richFilter(str) {

    str = str.replace(/(\n)/g, "");   

    str = str.replace(/(\t)/g, "");   

    str = str.replace(/(\r)/g, "");   

    str = str.replace(/<\/?[^>]*>/g, "");   

    str = str.replace(/\s*/g, "");

     

    return str;

}

获取文件后缀名

/*

 * 获取文件后缀名

 * @param thumbUrl {string} - url地址

 */

function  getResourceSuffix (resourcePath) {

    if (resourcePath) {

        let suffixIndex1 = resourcePath.lastIndexOf(".");

        let suffixIndex2 = resourcePath.length;

        return resourcePath.substring(suffixIndex1 + 1, suffixIndex2).toLowerCase(); //后缀名

    else {

        return '';

    }

};

去除字符串前后空格

/*

 * 清除字符串首尾空格

 * @param str {string} - 字符串

 */

function trim(str) {

    if (str) {

        return str.replace(/(^\s*)|(\s*$)/g, "");

    else {

        return '';

    }

}

补全资源url地址

/*

 * 补全资源url地址

 * @param resourceUrl {string} - url地址

 * @param baseUrl {string} - 网站地址

 * @returns {*}

 */

function fullResourceUrl(resourceUrl,baseUrl) {

    let regUrl = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/;

  

    if (!resourceUrl) {

        return '';

    }

    let resourceUrlTemp = resourceUrl.replace(/(^\s*)|(\s*$)/g, "");

    if (!resourceUrlTemp) {

        return '';

    }

    if (regUrl.test(resourceUrlTemp)) {

        return resourceUrl;

    else {

        // 处理电话、邮件、信息和定位

        if (resourceUrlTemp.startsWith('tel:') || resourceUrlTemp.startsWith('mailto:') || resourceUrlTemp.startsWith('sms:') || resourceUrlTemp.startsWith('geopoint:')) {

            return resourceUrlTemp;

        else if (resourceUrlTemp.startsWith('/')) {

            return baseUrl + resourceUrl;

        else {

            return baseUrl + '/' + resourceUrl;

        }

    }

};

字符串下划线转小驼峰

1.操作字符串数组

1

2

3

4

5

6

7

function tranformStr1(str){

        var strArr=str.split('-');

        for(var i=1;i<strArr.length;i++){

            strArr[i]=strArr[i].charAt(0).toUpperCase()+strArr[i].substring(1);

        }

        return strArr.join('');

    }

2. 操作字符数组

1

2

3

4

5

6

7

8

9

10

11

12

13

14

function tranformStr2(str){

        var strArr=str.split('');

        for(var i=1;i<strArr.length;i++){

            if(strArr[i]=='-'){

                //删除'-'

                strArr.splice(i,1);

                //转大写

                if(i<strArr.length){

                    strArr[i]=strArr[i].toUpperCase();

                }

            }

        }

        return strArr.join('');

    }

3.利用正则表达式

1

2

3

4

5

6

function transformStr3(str){

        var re=/-(\w)/g;

        return str.replace(re,function ($0,$1){

            return $1.toUpperCase();

        });

    }

数组转字符串

1

2

3

4

5

6

7

/**

* param {Array} arr

* param {string} sp

*/

function arrToStr(arr,sp){

    return arr.jion(sp);

}

json序列化

1

2

3

4

5

6

7

8

// json序列化

function json2Form(json) {

    var str = [];

    for (var in json) {

        str.push(encodeURIComponent(p) + "=" + encodeURIComponent(json[p]));

    }

    return str.join("&");

},

判断字符是否为空

1

2

3

4

5

6

7

function isEmpty(str) {

    if (str == null || str == '' || typeof (str) == "undefined") {

        return true;

    else {

        return false;

    }

}

字符串超出长度显示...(省略号)

1

2

3

4

5

6

7

8

9

10

11

12

13

/* 

 * 用途:js中字符串超长作固定长度加省略号(...)处理

 * 参数说明:

 * str:需要进行处理的字符串,可含汉字

 * len:需要显示多少个汉字,两个英文字母相当于一个汉字。

 */

function beautySub(str, len) {

    var reg = /[\u4e00-\u9fa5]/g, //专业匹配中文

        slice = str.substring(0, len),

        chineseCharNum = (~~(slice.match(reg) && slice.match(reg).length)),

        realen = slice.length * 2 - chineseCharNum;

    return str.substr(0, realen) + (realen < str.length ? "..." "");

}

token生成

/**

 * token生成

 * @param {Number} len - token长度

 * @returns {String} token

 */

function randomString (len) {

    len = len || 16;

    var $chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz2345678';

    /****默认去掉了容易混淆的字符oOLl,9gq,Vv,Uu,I1****/

    var maxPos = $chars.length;

    var pwd = '';

    for (i = 0; i < len; i++) {

        pwd += $chars.charAt(Math.floor(Math.random() * maxPos));

    }

    return pwd;

}

手机号隐藏中间几位号码

/**

 * 手机号码隐藏中间四位

 * @param {Number} phone - 手机号

 * @returns {String} 处理后的手机号码

 */

function formatPhone(phone){

    if(phone) {

        var regPhone= /(\d{4})\d{4}(\d{3})/;

        var phone= phone.replace(regPhone,"$1****$2");

        return phone;

    }else {

        return null;

    }

}

判断一个字符串中某个字符出现的次数

/**

 * 判断一个字符串中某个字符出现的次数

 * @param string 目标字符串

 * @param ele  字符

 * @returns {number}  处理后的次数

 */

function calConunts(string,ele) {

    var count = 0,

        pos = string.indexOf(ele);

    while(pos !== -1) {

        count++;

        pos = string.indexOf(ele,pos + 1);

    }

    return count;

}

身份证隐藏中间几位号码

/**

 * 身份证隐藏中间几位号码

 * @param idCard 身份证号码

 * @returns {String} 处理后的身份证号码

 */

function formatIdCard(idCard) {

    if(idCard) {

        var regIdCard= /(.{5}).*(.{5})/;

        var idCard= idCard.replace(regIdCard,"$1******$2");

        return idCard;

    }else {

        return null;

    }

}

数字前补零

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

/**

*   num为你想要进行填充的数字

*   length为你想要的数字长度

*/

//迭代方式实现

padding1=(num, length)=> {

  for(let len = (num + "").length; len < length; len = num.length) {

      num = "0" + num;           

  }

  return num;

}

//递归方式实现

padding2=(num, length) =>{

  if((num + "").length >= length) {

      return num;

  }

  return padding2("0" + num, length)

}

//转为小数

padding3=(num, length)=> {

  let decimal = num / Math.pow(10, length);

  //toFixed指定保留几位小数

  decimal = decimal.toFixed(length) + "";

  return decimal.substr(decimal.indexOf(".")+1);

}

//填充截取法

padding4=(num, length)=> {

  //这里用slice和substr均可

  return (Array(length).join("0") + num).slice(-length);

}

//填充截取法

padding5=(num, length)=> {

  let len = (num + "").length;

  let diff = length+1 - len;

  if(diff > 0) {

      return Array(diff).join("0") + num;

  }

  return num;

}

格式转换:base64转file

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

/**

*   base64 base64

*   filename 转换后的文件名

*/

base64ToFile = (base64, filename )=> {

  let arr = base64.split(',')

  let mime = arr[0].match(/难过.*?);/)[1]

  let suffix = mime.split('/')[1] // 图片后缀

  let bstr = atob(arr[1])

  let n = bstr.length

  let u8arr = new Uint8Array(n)

  while (n--) {

    u8arr[n] = bstr.charCodeAt(n)

  }

  return new File([u8arr], `${filename}.${suffix}`, { type: mime })

}

格式转换:base64转blob

1

2

3

4

5

6

7

8

9

10

11

base64ToBlob = base64 => {

  let arr = base64.split(','),

    mime = arr[0].match(/:(.*?);/)[1],

    bstr = atob(arr[1]),

    n = bstr.length,

    u8arr = new Uint8Array(n);

  while (n--) {

    u8arr[n] = bstr.charCodeAt(n);

  }

  return new Blob([u8arr], { type: mime });

};

格式转换:blob转file

1

2

3

4

5

blobToFile = (blob, fileName) => {

  blob.lastModifiedDate = new Date();

  blob.name = fileName;

  return blob;

};

格式转换:file转base64

1

2

3

4

5

6

7

8

9

10

11

/**

 * file 图片文件

 * 返回图片的Base64数据

 */

fileToBase64 = file => {

  let reader = new FileReader();

  reader.readAsDataURL(file);

  reader.onload = function (e) {

    return e.target.result

  };

}

对象处理为数组对象

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

/**

 *  obj 需要处理的对象

 */

objToArrObj = obj => {

  let arr = []

  for(let i in obj){

    arr.push({[i]:obj[i]})

  }

  return arr

}

//  测试数据

let obj = {20180410: 5, 20180411: 13, 20180412: 26, 20180413: 16}

console.log(objToArrObj(obj));

/*

  [

    { 20180410: 5 },

    { 20180411: 13 },

    { 20180412: 26 },

    { 20180413: 16 }

  ]

*/

自动补 0

/**

 * 自动补 0

 * @param {string} str - 字符串

 * @param {number} [len = 12] - 补 0 后字符串长度

 * @returns {string} - 补 0 后字符串

 * Tools.padZero();

 */

function padZero (str, len) {

    if (!len) {

        len = 12

    }

    var suffix = '';

    if (len !== 12) {

        for (var i = 0; i < len; i++) {

            suffix = suffix + '0';

        }

    else {

        suffix = '000000000000';

    }

    return str + suffix.substring(0, len - str.length)

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值