正则表达式,JSON.stringify() 去除 所有 key的下划线!!一句顶很多句。
最终的结论:
JSON.stringify(userInfo).replace(/([{,]\")_(\w*\":)/g, "$1$2");
开头锁定《以 {"_ 或 ,"_ 开头》 + 中间锁定《只能是 \w(即26个英文字母大小写和数字以及下划线)保证中间不能出现\转义字符》 + 结尾锁定(必须以":结尾,从而避开字符串数组的问题)
======================
以上基本上绝了,开头 + 中间 + 结尾 三层锁定一定是key,解决了所有情况的匹配。

===================================================================


{
"_name": "liyuxin",
"_age": 20,
"_sex": true,
"_address": {
"_province": "guang_dong",
"_city": "guang_zhou",
"_distinct": "_panyu\"yinhao"
},
"_strAry": [
"str111",
"str222"
]
}
重要思路,不按照这个思路来就是思路,重要点:值中若有"双引号,则一定会有 \ 转义字符,那么如何利用正则来匹配key呢,只需要做到 {"_ 这三个字符是连着的 或 ,"_ 这三个字符是连着的,就可以绝对匹配key,因为引号在中间,若只值中有引号,则前面
肯定有转移字符\,如:

//就是这么简单
下面来解释一下 这个正则:
([{,])(\")_ 会匹配到 {"_ 和 ,"_ ,其中 $1 = {, $2 = " ,意思是 用$1+$2 即:{"或 ,"来替换掉:{"_ 或 ,"_ 。从而最终 去除掉 key 的开头下划线,其中重要的思路是:
"双引号一定不会在值里出现。第一个字符 必须锁定成 {或 , 即:{"_ 和 ,"_ 必须是连续的三个字符。

留意点:不能使用 ([^\\])(\")_的方式,因为:
[]表示的是字符的范围如下:

关于()的解释:()可以分成9组,主要用来把联合匹配到的结果 分成多个组,然后替换的值那里,再次利用 $1-$9 再来替换匹配到的结果,达到双次替换的目的。牛逼了 无所不能!!


看下运行结果:
console.log(JSON.stringify(userInfo));
console.log(JSON.stringify(userInfo).replace(/([{,])(\")_/g, "$1$2"));
以下是运行结果:
{"_name":"liyuxin","_age":20,"_sex":true,"_address":{"_province":"guang_dong","_city":"guang_zhou","_distinct":"_panyu\"yinhao"},"_strAry":["str111","str222"]}
{"name":"liyuxin","age":20,"sex":true,"address":{"province":"guang_dong","city":"guang_zhou","distinct":"_panyu\"yinhao"},"strAry":["str111","str222"]}
=======================
2020-09-26 更新,只有开头和中间部分锁定的时候,会有一个问题,李庆庆提出的:
{"_name":"liyuxin","_age":["qwe","_qwe"],"_sex":true,"_address":{"_province":"guang_dong","_city":"guang_zhou","_distinct":"pan\"_yua\":\"asdf\""}}

正则表达式,JSON.stringify() 去除 所有 key的下划线!!一句顶很多句。的更多相关文章
- json字符串中key值下划线命名转换为驼峰命名
json字符串中key值下划线命名转换为驼峰命名: 例如: 原json串: String json= "{'user_name':'ok','user_sex':0,'object_info ...
- 使用CSS去除 去掉超链接的下划线方法
我们可以用CSS语法来控制超链接的形式.颜色变化,为什么链接一定要使用下划线和颜色区分呢? 其主要原因主要是考虑到 1.视力差的人 2.色盲的人 ... 下面我们做一个这样的链接:未被点击时超链接 ...
- js正则表达式只能是数字、字母或下划线
//只能是数字.字母或下划线 function isValid(str) { var reg = /^\w+$/g; return reg.test(str); }
- Android自定义EditText去除边框并添加下划线
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android=&quo ...
- 去除a标签的下划线
a:link ,a:visited,a:hover,a:active { text-decoration: none;}
- 去除router-link中的下划线
文章目录 1.设置router-link的样式 2.效果展示 1.设置router-link的样式 text-decoration: none; 2.效果展示
- IE兼容模式下两个小问题,JSON.stringify和SCRIPT70 无权限
JSON.stringify在IE兼容模式下不起作用,原来是序列化对象是一个easyuiTree的树节点对象,过于复杂的对象 SCRIPT70 权限,问题出现在获取页面iframe时: var ifr ...
- JSON.stringify////////////////////////////////zzzzzzzzzzzzzz
JSON.stringify 语法实例讲解 可能有些人对系列化这个词过敏,我的理解很简单.就是说把原来是对象的类型转换成字符串类型(或者更确切的说是json类型的).就这么简单.打个比方说,你有一个类 ...
- JSON.stringify()
概述 JSON.stringify() 方法可以将任意的 JavaScript 值序列化成 JSON 字符串. 语法 JSON.stringify(value[, replacer [, space] ...
- JSON.stringify的使用方法
语法: JSON.stringify(value [, replacer] [, space]) value:是必须要的字段.就是你输入的对象,比如数组啊,类啊等等. replacer:这个是可选的. ...
随机推荐
- 十六、企业级私有仓库harbor
系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...
- Laravel - except() 函数
/** * 用户添加 * @param 接收的表单数据 (name,password,id) * @return 返回添加是否成功 */ ...
- GoMusic-歌单迁移工具网站 一键迁移网易云/QQ音乐歌单至 Apple/Youtube/Spotify Music
GoMusic是什么: GoMusic是一个在线歌单迁移工具网站,帮助用户一键迁移网易云/QQ音乐歌单至 Apple/Youtube/Spotify Music,直接输入歌单链接,复制查询结果,打开 ...
- [转帖]配置cri-docker使kubernetes1.24以docker作为运行时
从kubernetes 1.24开始,dockershim已经从kubelet中移除,但因为历史问题docker却不支持kubernetes主推的CRI(容器运行时接口)标准,所以docker不能再作 ...
- [转帖]分享6个SQL小技巧
https://www.jianshu.com/p/2fcf0a4e83b7 简介 经常有小哥发出疑问,SQL还能这么写?我经常笑着回应,SQL确实可以这么写.其实SQL学起来简单,用起来也简单, ...
- [转帖]Linux之pure-ftpd安装和使用
一.pure-ftpd简介 PureFTPd是一款专注于程序健壮和软件安全的免费FTP服务器软件(基于BSD License),以安全和配置简单为设计目标,支持虚拟主机,IPV6,PAM等功能.. ...
- [转帖]一文搞懂各种数据库SQL执行计划:MySQL、Oracle等
https://zhuanlan.zhihu.com/p/99331255 MySQL 执行计划 Oracle 执行计划 SQL Server 执行计划 PostgreSQL 执行计划 执行计划(ex ...
- [转帖]redis操作 + StrictRedis使用
https://www.cnblogs.com/szhangli/p/9979600.html Redis string类型 字符串类型是 Redis 中最为基础的数据存储类型. 它在 Redis 中 ...
- [转帖]GCC 编译及编译选项
俗话说:'工欲善其事,必先利其器',一直在工作中使用GNU C编译器(以下简称GCC),这里对GCC的一些警告选项细致的分析,并列举几个简单的例子[注1]供分析参考. 1. -Wall集合警告选项我们 ...
- [转帖]ARM64体系结构编程与实践:基础知识
ARM64体系结构编程与实践:基础知识 原创 异步社区 2022-03-30 12:44:16 著作权 文章标签 寄存器 体系结构 v8 ARM64体系结构 ARM 文章分类 物联网 阅读数1570 ...
