RegExp类型
概述
正则表达式是什么
正则表达式(Regular Expression):由一些普通字符和特殊字符组成的,用以描述一种特定的字符规则的表达式。
正则表达式常用在一段文本中搜索、匹配、或者替换特定形式的文本。
创建正则表达式
/* var 变量名 = /pattern/attributes
* pattern - 模式,定义正则表达式的内容
* attributes - 修饰符,定义正则表达式的行为*/
var reg = /0123456789/i;
//构造函数方式
var reg = new RegExp(/pattern/attributes);
符号
字符类
var str = '12345abc';//要验证的内容
//下面三个正则表达式它们的意义相同
var reg = /[0-9]/;//要验证的内容匹配正则表达式的任意内容即可
var reg = /[/d]/;
var reg = /[0123456789]/;
console.log(reg.test(str));//true
重复
var str = '12345678';
/* {n,m}
* n - 表示最少出现的次数
* m - 表示最多出现的次数
* 注意:出现的次数必须是连续的*/
var reg = /[0-9]{2,5}/;
console.log(reg.test(str));//true
var str1 = '1abc2';
console.log(reg.test(str1));//false
匹配指定位置
var str = '123a456';
// ^ - 表示以什么开始
var reg = /^[0-9]{3,5}/;
// $ - 表示以什么结束
var reg = /[0-9]{3,5}$/;
//表示匹配内容的长度最少n次,最多m次,且匹配内容必须与字符类匹配
var reg = /^[0-9]{3,5}$/;
console.log(reg.test(str));//false
修饰符
- i - 不区分大小写匹配
- g - 全局匹配
- m - 多行匹配
var str = 'maowuyu';
//修饰符 i 表示不区分大小写
var reg = /[A-Z]{3,6}/i;
console.log(reg.test(str));//true
exec()方法
var str = 'maowuyu , shangwuyu , 123';
var reg = /[a-z]{3,5}/;
/* exec()方法
* 返回值-数组
* *第一个元素-匹配的内容
* *第二个元素-匹配内容的位置
* *第三个元素-完整内容
* 不匹配时,返回的结果为null*/
console.log(reg.exec(str));//[ 'maowu', index: 0, input: 'maowuyu , shangwuyu , 123' ]
String类型
常见操作
大小写转换
var reg1 = 'maowuyu';
var reg = new String('shangwuyu');
//toUpperCase()方法 - 转换为大写
console.log(reg1.toUpperCase());//MAOWUYU
//toLowerCase()方法 - 转换为小写
console.log(reg1.toLowerCase());//maowuyu
获取指定位置的字符串
var str = 'maowuyu';
//获取字符串长度
console.log(str.length);//7
/* charAt - 根据指定位置获取相应的字符串
* charCodeAt - 根据指定位置获取相应的字符串的Unicode码*/
console.log(str.charAt(4));//u
console.log(str.charCodeAt(4));//117 - Unicode码
检索字符串
var str = 'maowuyu';
//indexOf() - 根据指定内容返回位置 - 从左向右
console.log(str.indexOf('w'));//3
//lastindexOf() - 根据指定内容返回位置 - 从右向左
console.log(str.lastIndexOf('u'))//6
截取字符串
var str = 'maowuyu';
/* slice()方法 - 截取指定开始和结束位置的字符串
* 参数
* start - 表示开始截取的位置
* end - 表示结束结束截取的位置的下一个位置*/
console.log(str.slice(2,5));//owu
console.log(str.slice(-5,-1));//owuy
/* substring()方法 - 截取指定开始和结束位置的字符串
* 参数 - 只能为大于等于0的值
* start - 开始截取的位置
* end - 结束截取的位置的下一个位置
* */
console.log(str.substring(2,5));//owu
/* substr()方法 - 截取指定开始位置和长度的字符串
* 参数
* start - 开始截取的位置
* length - 截取的长度*/
console.log(str.substr(2,4));//console.log(str.slice(2,5));//owu
console.log(str.slice(-5,-1));//owuy
分隔字符串
var str = 'maowuyu';
//split() - 把字符串分隔为字符串数组
console.log(str.split(''));//[ 'm', 'a', 'o', 'w', 'u', 'y', 'u' ]
console.log(str.split(','));//[ 'maowuyu' ]
连接字符串
var str1 = 'abc';
var str2 = str1.concat('123','df');
console.log(str2);//abc123df
模式匹配
替换子字符串
var str ='Microsoft is a big Company, microsoft’s color is red and has MICROSOFT logo like microsoft';
/* replace()方法
* 作用 - 匹配字符串中的指定内容,并将之替换为新的指定内容
* 参数
* *reg - 定义正则表达式(搜索指定内容)- 被替换的内容
* str - 表示替换的内容
* 返回值 - 返回替换后的新字符串
* */
//; i - 不区分大小写匹配; g - 全局匹配
console.log(str.replace(/microsoft/ig,'hua'));
//hua is a big Company, hua’s color is red and has hua logo like hua
匹配字符串
match()方法 - 查找匹配正则的值
var str = 'hua is a big Company, hua’s color is red and has hua logo like hua';
/* match() - 匹配字符串
* 返回值 - 数组
* *第一个元素 - 匹配的内容
* *第二个元素 - 匹配内容第一个字符的位置
* *第三个元素 - 完整的字符串内容
* 当匹配的内容数量大于一个,->返回所有匹配内容*/
console.log(str.match(/hua/));
console.log(str.match(/hua/g));//[ 'hua', 'hua', 'hua', 'hua' ]
查找字符串
- search()方法用于查找与正则匹配的值
var str = '\'Microsoft is a big Company, microsoft’s color is red and has MICROSOFT logo like microsoft';
/*
search(reg)方法
* 作用 - 查找指定字符串中的指定内容
* 参数
* reg - 表示正则表达式
* 返回值
* 如果只匹配一个指定内容的话,返回匹配内容第一个字符的索引值
* 如果匹配是多个指定内容的话,返回第一个匹配内容的第一个字符的索引值
*/
var result = str.search(/microsoft/ig);
console.log(result);
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。