首页 / 正则 / 浅拷贝、深拷贝及正则表达式
浅拷贝、深拷贝及正则表达式
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了浅拷贝、深拷贝及正则表达式,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1372字,纯文字阅读大概需要2分钟。
内容图文
![浅拷贝、深拷贝及正则表达式](/upload/InfoBanner/zyjiaocheng/1110/1d445c9e680f4a55893502af52918b55.jpg)
浅拷贝
-
对象遍历只能用中括号。
-
只拷贝最外面一层。
for (var key in obj) { newObj[key] = obj[key]; }
es6新方法:
Object.assign(newObj, obj)
;
深拷贝
-
for in 既可以遍历对象也能遍历数组,key就是数组下标
-
使用递归
-
如果拷贝对象的过程中,发现这个属性又是一个复杂数据类型,就继续递归这个函数再遍历,知道遍历到基本数据类型就直接赋值。
-
function copy(newObj, obj) { for (var key in obj) { if (obj[key] instanceof Array) { newObj[key] = []; copy(newObj[key], obj[key]); } else if(obj[key] instanceof Object) { newObj[key] = {}; copy(newObj[key], obj[key]) } else { newObj[key] = obj[key]; } } }
正则表达式
-
用于匹配字符串的表达式
-
作用:
- 检索关键字
- 过滤敏感字符
- 表单验证
-
特点:
- 灵活性、逻辑性和功能性非常的强。
- 可以迅速地用极简单的方式达到字符串的复杂控制
-
使用:
-
创建正则表达式
-
方式一:通过实例化对象创建正则
var reg = new RegExp(/abc/);
-
方式二:通过字面量创建正则
var reg = /123/;
-
-
-
测试正则表达式
- test()正则对象方法,用于检测字符串是否符合该规则,会返回true或false,参数是测试字符串。
-
reg.test(str);
-
正则组成
- 简单字符和特殊字符所构成(元字符)
-
边界符
- 用来提示字符所处位置,主要有两个字符
- 如果单独使用就是匹配开头结尾。
- 但是如果一起使用,精确匹配:
- /^abc$/: 只能匹配abc
- ^: 表示匹配行首的文本(以谁开始)
- $: 表示匹配行尾的文本(以谁结束)
-
字符类
- [ ]方括号
- 多选一,只要匹配一个就行
- /^[abc]$/
- 三选一
- 只能有a或b或c
- /^[a-z]$/
- 从26个字母选一个,只能选一个,只能小写
- /^[a-zA-Z]$/ 大小写
- /^[a-zA-Z0-9]$/ 大小写,数字0-9
- /^[a-zA-Z0-9_-]$/ 大小写,数字0-9,包括下划线和中划线
/^[^a-zA-Z0-9_-]$/
在中括号中第一位放一个^是取反,匹配的都是false,不在规则里的是true
- [ ]方括号
-
量词符
- 用来设定某个模式出现的次数。[a-z]量词符。
-
*
重复出现0次或更多次 -
+
重复1次或者更多次 -
?
0次或者1次 -
{n}
重复n次或更多次 - {n,} 重复n次或更多次
-
{n,m}
重复n到m次
括号总结
- 大括号
- 中括号
- 小括号
预定义类
- \d 0-9
- \D 匹配所有0-9以外的字符
- \w 匹配任意
- \W 除了字母,数字下划线以外的所有字符
- \s 匹配空格
- \S 匹配非空格的字符
替换
- replace ()
- 字符串方法
- /表达式/[修饰符]
- g:全局匹配
- i: 忽略大小写
- gi:全局忽略大小写
原文:https://www.cnblogs.com/itxcr/p/11600186.html
内容总结
以上是互联网集市为您收集整理的浅拷贝、深拷贝及正则表达式全部内容,希望文章能够帮你解决浅拷贝、深拷贝及正则表达式所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。