[Java教程]反义字符存储总结

0 2017-09-11 10:00:09

前后端交互中,定义接口字段的时候,一般都会借助一些小工具来定义JSON格式的字符串。我在写这样的一个工具的时候碰到一个关于转义字符的问题。记录一下。

转义字符的定义,我理解就是为了区分一些已经有特定意义的字符,去掉这些“特定意义”而转为普通字符的辅助符号。例如,我们写正则表达式的时候,+号已经被赋予了“匹配前面的子表达式一次或多次”的含义,那如何表示纯粹的一个+号呢,那就是加上转义字符,这样表示\+。

首先,正则表达式的输入画风是这样的:

我们知道,这样输入的是字符串。得到的字符串是这样的:{"name":"test","nick":"test","type":"id","value":"","require":"","regex":"/^\d{4,8}$/","tips":"","ps":""}

那我们把这个字符串转化为对象的话,就要调用JSON.parse()了。然而,画风是这样的:

没错,反斜杠在这里的作用就是保证d这个字符不被转义,虽然这里d不是特殊字符。因此转了之后,反斜杠就不见了。这样我们存进数据再取出来的时候。必然是有问题的。那么怎样保证转义字符不被转义呢。那就是把转义字符再转一次。即输入“/^\d{4,8}$/”,存进数据库的时候要变成这样:/^\\d{4,8}$/。

然后,首先想到的是,用正则,匹配所有的反斜杠,然后替换为双反斜杠。

然而结果是这样的:

也就是在replace之前,这个反斜杠就没了。那么就只能用字符串匹配的方式来转换了。

这里有个技巧:先转换为数组,遍历。再转为字符串就好了。var regex = $dom.find('.basic_regex').val(); var tempRe = regex.split(''); for(var i = 0;i < tempRe.length;i++){ if(tempRe[i] == '\\'){ tempRe[i] = '\\\\'; } } obj.regex = tempRe.join('') || '';

这样,就把转义字符转义了。那么从数据库中取出来的时候再转换的时候,反斜杠就不会丢失啦。

附:

JSON格式编辑工具。

本文网址:http://www.shaoqun.com/a/322912.html

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:admin@shaoqun.com。

0

java 反义_[Java教程]反义字符存储总结相关推荐

  1. java小朋友猜拳_[Java教程]Java猜拳小游戏(剪刀、石头、布)

    [Java教程]Java猜拳小游戏(剪刀.石头.布) 0 2015-09-29 08:00:04 import java.util.Random;import java.util.Scanner;pu ...

  2. java星空屏幕_[Java教程]窗口设置_星空网

    窗口设置 2016-04-13 0 /** * 这个是GUI的事例程序: * */ package w160412.wang.main;import java.awt.Color; import ja ...

  3. java取负数_[Java] 告别“CV 工程师”码出高效!(基础篇)

    作为一名资深的 CV 工程师,某天,当我再一次日常看见满屏的报错信息与键盘上已经磨的泛白的 Ctrl.C.V 这三个按键时,我顿悟了. 百度谷歌复制粘贴虽然很香,但是总是依靠前人种树,终会有一天失去乘 ...

  4. java控制语句练习题_[Java初探实例篇02]__流程控制语句知识相关的实例练习

    本例就流程控制语句的应用方面,通过三个练习题来深入学习和巩固下学习的流程控制语句方面的知识,设计到,if条件判断语句,switch多分支语句,for循环语句及其嵌套多层使用,while循环语句. 练习 ...

  5. java 文本压缩_[Java基础]Java使用GZIP进行文本压缩

    import java.io.IOException; import java.util.zip.GZIPOutputStream; import org.apache.commons.io.outp ...

  6. java private 对象_[Java笔记]类的所有构造器都是private权限,就一定没有办法实例化它的对象了么?...

    笔者以前学过C++语言.众所周知,C++也是一门面向对象程序设计语言.还记得当时在大学的时候,老师讲过这样的话:类的构造函数不应该设置成private权限,这样的话还怎么去实例化类的对象?当时也信以为 ...

  7. java resources 目录_[Java] 在 jar 文件中读取 resources 目录下的文件

    注意两点: 1. 将资源目录添加到 build path,确保该目录下的文件被拷贝到 jar 文件中. 2. jar 内部的东西,可以当作 stream 来读取,但不应该当作 file 来读取. 例子 ...

  8. java斗地主发牌_[Java源码]扑克牌——斗地主发牌实现

    --------------------------------------- --------------------------------------- ----------一个扑克牌核心和简单 ...

  9. java 高性能代码_[Java教程]Javascript高性能代码(一)

    [Java教程]Javascript高性能代码(一) 0 2013-03-09 22:00:11 分享说明: 1. 我先申明,我只是茫茫WEB前端开发人员中的一名普通的js程序员,我收集的和总结的代码 ...

最新文章

  1. Linux系统下如何加载U盘或移动硬盘
  2. 斯坦福全球AI报告:人才需求两年暴增35倍,中国机器人部署量涨500%
  3. Jupyter notebook Ipython 魔法函数 Magic 计算代码(函数)耗时 Timing(%%time %time %timeit)
  4. 进程间通信(IPC)介绍(转)
  5. 知乎问题:概率图模型是否有必要系统地学习
  6. Thread——线程
  7. (六)boost库之内存管理shared_ptr
  8. WebStorm 9 配置 Live Edit 功能与浏览器实现同步
  9. java单例模式7种_Java 单例模式的7种写法
  10. 动态修改css 规则
  11. 不懂*和*区别的可以进来看看
  12. H264/H265/YUV码流分析工具推荐(一)
  13. 系统集成项目管理工程师教程重点、笔记和试题大全
  14. Base64的编码原理
  15. 计算当前是时间距离凌晨零点的时间
  16. 俄罗斯方块c语言程序报告摘要,俄罗斯方块c语言程序
  17. java线程栅栏_java多线程 栅栏CyclicBarrier
  18. 思科模拟器Cisco Packet Tracer的下载
  19. ICCV2021 | Vision Transformer中相对位置编码的反思与改进
  20. php中相关乱码处理

热门文章

  1. docker hub上镜像手动下载_docker: docker安装和镜像下载
  2. 2D网络游戏开发(网络篇)(一)
  3. 网络安全类面试题整理1
  4. 现在做个人独立博客网站真的可以赚到钱吗?
  5. php头像获取,[教程] js+php获取qq昵称及头像(转载) - 风信子博客
  6. 家乡风景介绍网页html,介绍家乡景色的作文(精选5篇)
  7. Delaunay三角网
  8. 宝藏级BI数据可视化功能|图表联动分析
  9. 在我们睡觉的时候,程序能不能自动查 bug?
  10. 【渝粤题库】广东开放大学 大学英语2 形成性考核