正则表达式,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:这个是可选的. ...
随机推荐
- 神经网络优化篇:详解Adam 优化算法(Adam optimization algorithm)
Adam 优化算法 在深度学习的历史上,包括许多知名研究者在内,提出了优化算法,并很好地解决了一些问题,但随后这些优化算法被指出并不能一般化,并不适用于多种神经网络,时间久了,深度学习圈子里的人开始多 ...
- uni-app 预览pdf文件
安卓uni-app实现pdf文件预览功能: 1.https://mozilla.github.io/pdf.js/getting_started/#download下载 放在根目录下, 2.新建一个w ...
- Guava缓存工具类封装和使用
本文为博主原创,未经允许不得转载: Guava是谷歌提供的一款强大的java工具库,里面包含了很多方便且高效的工具,在项目开发中有业务场景需要保存数据到内存当中, 且只需要保存固定时间就可以,该数据只 ...
- 电机控制和Linux驱动开发哪个方向更好呢?
电机控制和Linux驱动开发哪个方向更好呢? 先说结论:任何一个领域,就像世间的五行,阴阳结合,虚实结合,利弊结合.对于哪个更好,不能一概而论,最重要的是要搞清楚,你更适合哪个? 1.共鸣 当我看到这 ...
- Qt5.9 UI设计(四)——布局设计及自定义界面
前言 前面我们已经创建了mainwindow ControlTabWidget ControlTreeWidget maintitlebar 4个UI几面,我们需要将其他三个UI放置到mainwind ...
- [转帖]容器环境的JVM内存设置最佳实践
https://cloud.tencent.com/developer/article/1585288 Docker和K8S的兴起,很多服务已经运行在容器环境,对于java程序,JVM设置是一个重要的 ...
- [转帖]TiKV 多副本丢失以及修复实践
https://tidb.net/blog/ad45bad9#6%E6%80%BB%E7%BB%93 1实验目的 随着tidb使用场景的越来越多,接入的业务越来越重要,不由得想试验下tidb组件的高可 ...
- [转帖]Linux Shell编程 循环语法
https://zhuanlan.zhihu.com/ for循环 for 循环是固定循环,也就是在循环时已经知道需要进行几次循环.有时也把 for 循环称为计数循环.语法: for 变量 in 值1 ...
- [转帖]k8s之PV、PVC、StorageClass详解
https://zhuanlan.zhihu.com/p/128552232 导读 上一篇写了共享存储的概述以及一个简单的案例演示.这一篇就写一下PV和PVC. PV是对底层网络共享存储的抽象,将共享 ...
- [转帖]自动化配置SSH免密登录和取消SSH免密配置脚本
1. 前文 搭建了一套有多台主机的局域网环境,不完全考虑安全性的情况下,为方便管理局域网内主机,配置SSH免密登录,因主机较多,前阵子针对配置ssh免密和取消ssh免密功能单独写了脚本来自动化批量部署 ...
