正则表达式
正则表达式:用于匹配规律规则的表达式,正则表达式最初是科学家对人类神经系统的工作原理的早期研究,现在在编程语言中有广泛的应用,经常用于表单校验,高级搜索等。
回帖(2)
2020-10-27 18:27:51
创建正则表达式
【07-正则表达式的创建.html】
构造函数的方式
var regExp = new RegExp(//d/);正则字面量
var regExp = //d/;正则的使用
//d/.test("aaa1");元字符
正则表达式由一些普通字符和元字符组成,普通字符包括大小写字母、数字等,而元字符则具有特殊的含义。
常见元字符
|表示或,优先级最低
()优先级最高,表示分组
字符类的元字符
[]在正则表达式中表示一个字符的位置,[]里面写这个位置可以出现的字符。
console.log(/[abc]/);//匹配a,b,c[^]在中扩号中的^表示非的意思。
//^表示该位置不可以出现的字符
console.log(/[^abc]/);//匹配除了a,b,c以外的其他字符[a-z] [1-9]表示范围
console.log(/[a-z]/.test("d"));//小写字母
console.log(/[A-Z]/.test("d"));//大写字母
console.log(/[0-9]/.test("8"));//数字
console.log(/[a-zA-Z0-9]/);//所有的小写字母和大写字母以及数字边界类元字符
我们前面学习的正则只要有满足的条件的就会返回true,并不能做到精确的匹配。
【12-正则边界.html】
^表示开头 []里面的^表示取反
$表示结尾
console.log(/^chuan/.test("dachuan"));//必须以chuan开头
console.log(/chuan$/.test("chuang"));//必须以chuan结尾
console.log(/^chuan$/.test("chuan"));//精确匹配chuan
//精确匹配chuan,表示必须是这个
console.log(/^chuan$/.test("chuanchuan"));//fasle量词类元字符
量词用来控制出现的次数,一般来说量词和边界会一起使用
【13-正则量词.html】
- *表示能够出现0次或者更多次,x>=0;
- +表示能够出现1次或者多次,x>=1
- ?表示能够出现0次或者1次,x=0或者x=1
- {n}表示能够出现n次
- {n,}表示能够出现n次或者n次以上
- {n,m}表示能够出现n-m次
思考:如何使用{}来表示*+?
正则的使用
正则测试
- 验证座机
var phoneReg = /^0/d{2,3}-/d{7,8}$/;
- 比如010-12345678 0797-1234567
- 开头是3-4位,首位必须是0
- -后面是7-8位
- 验证姓名
var nameReg = /^[/u4e00-/u9fa5]{2,6}$/;
- 只能是汉字
- 长度2-6位之间
- 汉字范围[/u4e00-/u9fa5]
- 验证QQ
var qqReg = /^[1-9]/d{4,10}$/;
- 验证手机
var mobileReg = /^(13[0-9]|147|15[0-9]|17[0178]|18[0-9])/d{8}$/;
- 11位数字组成
- 号段13[0-9] 147 15[0-9] 17[0178] 18[0-9]
- 验证邮箱
var emailReg = /^/w***/w+(/./w+)+$/;
- 前面是字母或者数字
- 必须有@
- @后面是字母或者数字
- 必须有.
- .后面是字母或者数字
正则替换
var str = " 123AD asadf asadfasf adf ";
1 替换掉字符串中的所有空白
2. 将所有的ad替换成xx
3. 将所有的ad/AD替换成xx
var str = "abc,efg,123,abc,123,a"
4. 所有的逗号替换成句号
var jsonStr = '[{"name":"张三",score:80},{"name":"张三",score:90},{"name":"张三",score:81}]';
5. 把所有***成100分
创建正则表达式
【07-正则表达式的创建.html】
构造函数的方式
var regExp = new RegExp(//d/);正则字面量
var regExp = //d/;正则的使用
//d/.test("aaa1");元字符
正则表达式由一些普通字符和元字符组成,普通字符包括大小写字母、数字等,而元字符则具有特殊的含义。
常见元字符
|表示或,优先级最低
()优先级最高,表示分组
字符类的元字符
[]在正则表达式中表示一个字符的位置,[]里面写这个位置可以出现的字符。
console.log(/[abc]/);//匹配a,b,c[^]在中扩号中的^表示非的意思。
//^表示该位置不可以出现的字符
console.log(/[^abc]/);//匹配除了a,b,c以外的其他字符[a-z] [1-9]表示范围
console.log(/[a-z]/.test("d"));//小写字母
console.log(/[A-Z]/.test("d"));//大写字母
console.log(/[0-9]/.test("8"));//数字
console.log(/[a-zA-Z0-9]/);//所有的小写字母和大写字母以及数字边界类元字符
我们前面学习的正则只要有满足的条件的就会返回true,并不能做到精确的匹配。
【12-正则边界.html】
^表示开头 []里面的^表示取反
$表示结尾
console.log(/^chuan/.test("dachuan"));//必须以chuan开头
console.log(/chuan$/.test("chuang"));//必须以chuan结尾
console.log(/^chuan$/.test("chuan"));//精确匹配chuan
//精确匹配chuan,表示必须是这个
console.log(/^chuan$/.test("chuanchuan"));//fasle量词类元字符
量词用来控制出现的次数,一般来说量词和边界会一起使用
【13-正则量词.html】
- *表示能够出现0次或者更多次,x>=0;
- +表示能够出现1次或者多次,x>=1
- ?表示能够出现0次或者1次,x=0或者x=1
- {n}表示能够出现n次
- {n,}表示能够出现n次或者n次以上
- {n,m}表示能够出现n-m次
思考:如何使用{}来表示*+?
正则的使用
正则测试
- 验证座机
var phoneReg = /^0/d{2,3}-/d{7,8}$/;
- 比如010-12345678 0797-1234567
- 开头是3-4位,首位必须是0
- -后面是7-8位
- 验证姓名
var nameReg = /^[/u4e00-/u9fa5]{2,6}$/;
- 只能是汉字
- 长度2-6位之间
- 汉字范围[/u4e00-/u9fa5]
- 验证QQ
var qqReg = /^[1-9]/d{4,10}$/;
- 验证手机
var mobileReg = /^(13[0-9]|147|15[0-9]|17[0178]|18[0-9])/d{8}$/;
- 11位数字组成
- 号段13[0-9] 147 15[0-9] 17[0178] 18[0-9]
- 验证邮箱
var emailReg = /^/w***/w+(/./w+)+$/;
- 前面是字母或者数字
- 必须有@
- @后面是字母或者数字
- 必须有.
- .后面是字母或者数字
正则替换
var str = " 123AD asadf asadfasf adf ";
1 替换掉字符串中的所有空白
2. 将所有的ad替换成xx
3. 将所有的ad/AD替换成xx
var str = "abc,efg,123,abc,123,a"
4. 所有的逗号替换成句号
var jsonStr = '[{"name":"张三",score:80},{"name":"张三",score:90},{"name":"张三",score:81}]';
5. 把所有***成100分
举报
2020-10-27 21:45:59
了解一下
了解一下
举报
更多回帖