前端日常问题总结(字符串)

一、序列化与反序列化

序列化:就是将对象转化成字节序列的过程。
反序列化:就是讲字节序列转化成对象的过程。

对象序列化成的字节序列会包含对象的类型信息、对象的数据等,说白了就是包含了描述这个对象的所有信息,能根据这些信息“复刻”出一个和原来一模一样的对象。

1、序列化

js中的object转化为字符串

  1. 1.使用toJSONString
var last=obj.toJSONString(); //将JSON对象转化为JSON字符 
  1. 使用stringify
var last=JSON.stringify(obj); //将JSON对象转化为JSON字符  
  1. json转字符串函数
		var json = {a:1,b:2,c:3};
		var arr = [];
		for ( name in json) {
			arr.push(name+':'+json[name]);
		}
		var str = arr.join(',');
		alert(str);

2、反序列化

json字符串转化为object

  1. eval

js中的eval()方法就是一个js语言的执行器,它能把其中的参数按照JavaScript语法进行解析并执行。

eval应用详情看这里!

var obj=eval("("+data+")");  
  1. 使用parseJSON
var obj = data.parseJSON(); //由JSON字符串转换为JSON对象  
  1. 使用parse
var obj = JSON.parse(data); //由JSON字符串转换为JSON对象 
  1. 使用封装函数
function convertCartStrToObj(cartStr){        
         var obj ={};
        //将字符串name:17dian,key:123456,tel:18810701077 按“,”拆分成数组["name:17dian", "key:123456", "tel:18810701077"]
         var arrVal = cartStr.split(",");  
         for ( var i = 0; i < arrVal.length ;i++){
                  data = arrVal[i].split(":"); // 在将每一项拆分 例如arrVal[0]时 data =["name", "17dian"]
                  console.log(data)
                  obj[data[0]] = data[1]; //给对象添加属性
         }
        return obj;
}

二、字符串处理

1、 js 截取指定字符后面/前面的所有字符串

  • 在js中,可以通过indexOf( )方法找到指定的字符位置,再使用length属性获得字符串的长度,最后,使用substring()方法完成截取字符串的操作。

substring() 截取字符串 用法: substring(start,end)(不包括end)

//js 截取指定字符后面/前面的所有字符串

let str = '你还好吗?嗯?我很好!'
			//截取第一个?前面的字符串
			var index = str.indexOf("?")
			var resolve = str.substring(0, index);
			console.log(resolve)
			//你还好吗

			//截取第一个?后面的字符串
			var indexs = str.indexOf("?")
			var resolves = str.substring(indexs + 1, str.length);
			console.log(resolves)
			//嗯?我很好!

			//截取最后一个?前面的字符串
			let indexss = str.lastIndexOf("?")
			var resolvess = str.substring(0, indexss);
			console.log(resolvess)
			//你还好吗?嗯

			//截取最后一个?后面的字符串
			let indexsss = str.lastIndexOf("?")
			var resolvesss = str.substring(indexsss + 1, str.length);
			console.log(resolvesss)
			//我很好!

2、js截取字符串里括号间的内容

var reg1 = /((.+?))/g; // () 小括号
var reg2 = /[(.+?)]/g; // [] 中括号
var reg3 = /{(.+?)}/g; // {} 花括号,大括号
var reg4 = /((.+?))/g; //() 中文小括号
var reg5 = /【(.+?)】/g; // 【】中文中括号

    var a = /\[(.*?)\]/gi;
    var b = "qqq[2]33";
    var c = b.match(a);
    if (c) {
      for (var i = 0; i < c.length; i++) {
        alert(c[i]); // 保留中括号
        alert(c[i].replace(a, "$1")); // 不保留中括号
      }
    }
    最终结果:2

3、字符串合并操作:“ + ”

注意:字符转和数字相加的字符串!

var iNum01 = 12;
var iNum02 = 24;
var sNum03 = '12';
var sTr = 'abc';
alert(iNum01+iNum02);  //弹出36
alert(iNum01+sNum03);  //弹出1212 数字和字符串相加等同于字符串相加
alert(sNum03+sTr);     // 弹出12abc

4、parseInt() 将数字字符串转化为整数

注意:转化有小数时会把小数部分去掉取整!

var sNum01 = '12';
var sNum02 = '24';
var sNum03 = '12.32';
alert(sNum01+sNum02);  //弹出1224
alert(parseInt(sNum01)+parseInt(sNum02))  //弹出36
alert(parseInt(sNum03))   //弹出数字12 将字符串小数转化为数字整数

5、parseFloat() 将数字字符串转化为小数

var sNum03 = '12.32'
alert(parseFloat(sNum03));  //弹出 12.32 将字符串小数转化为数字小数

6、split() 把一个字符串分隔成字符串组成的数组

注意:不出在会弹出-1!

var sTr = '2017-4-22';
var aRr = sTr.split("-");
var aRr2= sTr.split("");
 
alert(aRr);  //弹出['2017','4','2']
alert(aRr2);  //弹出['2','0','1','7','-','4','-','2','2']

7、indexOf() 查找字符串是否含有某字符

var sTr = "abcdefgh";
var iNum = sTr.indexOf("c");
alert(iNum); //弹出2

8、字符串反转

注意:字符串反转就是用的数组的方法!

var str = 'asdfj12jlsdkf098';
var str2 = str.split('').reverse().join('');
 
alert(str2);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值