标准对象
正则表达 RegExp
正则表达式是一种用来匹配字符串的强有力的武器,可以帮助规定电话、邮箱等的具体格式。
规则如下:
1、用\d可以匹配一个数字,\w可以匹配一个字母或数字
2、 . 可以匹配任意字符
3、用 * 表示任意个字符(包括0个),用+表示至少一个字符,用?表示0个或1个字符,用{n}表示n个字符,用{n,m}表示n-m个字符
4、\s 可以匹配一个空格
5、特殊字符使用 \ 进行转译即可
6、[] 规定匹配范围
1)[0-9a-zA-Z\_]可以匹配一个数字、字母或者下划线
2)[0-9a-zA-Z\_]+可以匹配至少由一个数字、字母或者下划线组成的字符串
3)[0-9a-zA-Z\_]*可以匹配0/多个由数字、字母或者下划线组成的字符串
4)[]{0,19} 精确匹配的数量 0-19
7、 ^表示行的开头,^\d表示必须以数字开头
$表示行的结束,\d$表示必须以数字结束。
创建RegExp对象
第一种方式是直接通过 /正则表达式/ 写出来
第二种方式是通过 new RegExp(‘正则表达式’)创建一个RegExp对象
var re1 = /^\d{3}\-\d{3,8}$/;
var re2 = new RegExp('ABC\\-001');
RegExp对象的test()方法用于测试给定的字符串是否符合条件。
切分字符串
用正则表达式切分字符串比用固定的字符更灵活。
a,b, c d'.split(/[\s\,]+/); // 空格和,划分字符串 [a,b,c,d]
分组
正则表达式还有提取子串的强大功能。用 () 表示的就是要提取的分组。
var re = /^(\d{0-3})-(\d{3-8})$/
上面有两个(),因此上面的正则表达式分成了两组,可以利用exec()来进行字符串的分组, exec()方法在匹配成功后,会返回一个Array,第一个元素是正则表达式匹配到的整个字符串,后面的字符串表示匹配成功的子串
var arr = '000-3333'
re.exec(arr); // ['000-3333', '000', '3333']
贪婪匹配
正则匹配默认是贪婪匹配,也就是匹配尽可能多的字符.
如想取消贪婪匹配,加个 ? 就可以。
var re = /^(\d+?)(0*)$/;
re.exec('102300'); // ['102300', '1023', '00']
JSON
JSON是JavaScript Object Notation的缩写,它是一种数据交换格式。
JSON实际上是JavaScript的一个子集。
number、array、string、boolean、object类型基本和js一致,JSON的字符串规定必须用双引号"",Object的键也必须用双引号""。
JSON与javascript对象转换
把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机。
var person = {
name: 'ruby';
age: 20
};
var s = JSON.stringify(person); // {"name": "ruby", "age": 20}
收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了。
JSON.parse()把它变成一个JavaScript对象:
JSON.parse(s);
本文是根据廖雪峰老师的教程所做笔记,如有疑问,可以仔细阅读廖雪峰老师教程https://www.liaoxuefeng.com/wiki/1022910821149312。