js-如何修改对象或者数组中的属性。正则表达式

假设,我们从后端取回来的Json对象数据中,有某些属性名不是我们想要的,就需要给它们重新命名。
// array为数组,old_name为修改前属性名,new_name为修改后属性名
JSON.parse(JSON.stringify(array).replace(/old_name/g, 'new_name')) 

1.JSON.stringify() 把json对象 转成 json字符串
2.使用正则的 replace() 方法替换属性名
3.JSON.parse() 再把json字符串 转成 json对象

下面就是我工作中转换的方法this.pars是后端给我的JSON对象使用正则进行转换,---pricePolicyInfoDtoList是要转换前的对象或者数组的属性pricePolicyInfoSaveParamList是转换后的属性名
this.parentparameter = JSON.parse(JSON.stringify(this.pars).replace(/pricePolicyInfoDtoList/g,'pricePolicyInfoSaveParamList'))

如需修改多个属性:就可以链式调用使用.replace方法
JSON.parse(JSON.stringify(array).replace(/old_name1/g, 'new_name1').replace(/old_name2/g, 'new_name2').replace(/old_name3/g, 'new_name3'))

1.2.

2.正则表达式RegExp 修饰符 test() / exec()

修饰符用于执行不区分大小写和全文的搜索。
i - 修饰符是用来执行不区分大小写的匹配。
g - 修饰符是用于执行全文的搜索(而不是在找到第一个就停止查找,而是找到所有的匹配)。
1.test() 方法搜索字符串指定的值,根据结果并返回真或假。 
2.exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

实例1: 在字符串中不区分大小写找"nowcoder"

var str = "Visit Nowcoder";
var patt1 = /nowcoder/i;
以下文本是获得的匹配的表达式:Nowcoder

实例2:  全文查找 "is"
var str="Is this all there is?";
var patt1=/is/g;
以下文本是获得的匹配的表达式:is,is;

实例3:  全文查找和不区分大小写搜索 "is"
var str="Is this all there is?";
var patt1=/is/gi;
以下文本是获得的匹配的表达式:Is,is,is

==============================================================
test()
test()方法搜索字符串指定的值,根据结果并返回真或假。

实例1:  下面的示例是从字符串中搜索字符 "e" :

var patt1=new RegExp("e");
document.write(patt1.test("The best things in life are free"));
由于该字符串中存在字母 "e",以上代码的输出将是:true

当使用构造函数创造正则对象时,需要常规的字符转义规则(在前面加反斜杠 )

var re = new RegExp("\w+");

exec()
exec() 方法检索字符串中的指定值。返回值是被找到的值。如果没有发现匹配,则返回 null。

实例2:  下面的示例是从字符串中搜索字符 "e" :

var patt1=new RegExp("e");
document.write(patt1.exec("The best things in life are free"));
由于该字符串中存在字母 "e",以上代码的输出将是:e

猜你喜欢

转载自blog.csdn.net/weixin_51127384/article/details/120537801