1 正则校验的两个方法
exec() 符合返回的是数组 不符合返回null
var reg = /^[a-z]+$/g
console.log(reg.exec('abc'));
使用test()
这个方法用来检查一个字符串是否符合正则表达式的规则,如果符合返回true 则返回false
var reg = new RegExp(/[a-z]/,'g');
console.log(reg.test('aaaa')); */
字面量的表达方式
var reg = /[a-z]/i;
2: 修饰符
i 忽略大小写 g全局 把符合的字符串全部提取,返回数组呈现 修饰符一起写不区分顺序
var str = 'abvabbbb';
console.log(str.match(/a/g));
3:表达式:
[a-z]查找任何从小写a到z的字符; [A-Z]查找任何从小写A到Z的字符; [a-zA-Z]表示大小写的26个英文字母,都能匹配; [0-9] 查找任何从0到9的数字; [0-9a-zA-Z]表示大小写的26个英文字母和数字都匹配 []只要有一个符合就返回true
var reg = /[0-9]/
console.log(reg.test('abc123')); */
[abc]表示查找花括号里面任意字符一个 ^除了意思 或是取反 [^abc]取反或是除了abc之外的字符 写在[]里面的^是除了意思 ^[]表示以什么开头 []$表示以什么结尾
var reg = /[^abc]/
console.log(reg.test('df'));
-
匹配前面的字符1次或是多次、
表示可以匹配纯26个小写英文字母 var reg = /^[a-z]+$/ console.log(reg.test('abc'));// 匹配一串字符,可以包括多个英文字母包括大小写和数字
var reg = /^[a-zA-Z0-9]+$/ console.log(reg.test('11Ab')); /* 必须加入限定符号^$ */
^[a-zA-Z0-9] 以任意一个大小写字母或是数字开头 ^[a-zA-Z0-9]$ 以任意一个大小写字母或是数字结尾 {n,}至少匹配n次 加限定符 {n} 确定匹配n次 加限定符 {n,m}最少匹配n次,最多匹配m次 加限定符
用户名 不能数字 长度不能小于6位 不能大于10位
var reg = /^[a-zA-Z0-9]{6,10}$/
console.log(reg.test('aaaaaa'));
-
匹配前面的子表达式0次或是多次 加限定符
var reg = /^[a-zA-Z0-9]*$/ console.log(reg.test('aaaaaa'));
?匹配前面的子表达式出现0次或1次 加限定符
var reg = /^[a-zA-Z0-9]?$/
4:元字符
元字符区分大小写 \w 匹配数字,字母,下划线
var reg = /^\w+$/
console.log(reg.test('_abc'));
\W 匹配非数字,字母,下划线
var reg = /^\W+$/
console.log(reg.test("#$"))
\d匹配数字
var reg = /^\d+$/
console.log(reg.test("123"))
\D匹配非数字
var reg = /^\D+$/
console.log(reg.test("acx"))
\s匹配空白字符(空字符串不可以) 空格 换行\n 回车\r
var reg = /^\s+$/
console.log(reg.test("\r"))
\S匹配非空白字符 除了空的字符串 空格 换行\n 回车\r 其他都返回true
var reg = /^\S+$/
console.log(reg.test("aa"))
\n 换行符 只匹配换行符 var reg = /^\n+$/ console.log(reg.test("\n\n\n"))
5:字符串支持正则的方法
search 返回匹配到的第一个字符串的下标,否则返回-1
var str = '223abc'
console.log(str.search(/[a-z]/));
match 没有匹配到的字符串返回null 符合的返回数组 不能使用限定符
var str = '223abcabc'
console.log(str.match(/[0-9]/));
// 返回2 的数组
console.log(str.match(/[0-9]/g));
// 返回一个数组 将所有的数字全部匹配到
replace 返回一个新的字符串
var str = 'abca122bc'
console.log(str.replace('bc','o'));
let newStr = str.replace(/[0-9]/g, 'oo')
let newStr=str.replace(/[0-9]/,'oo')
console.log(newStr)
split 字符串转换成数组 匹配不到 将整个字符串当成数组返回
split的第二个参数是分割成几个数组
var str1 = 'a1b2c3d'
console.log(str1.split('-')); */
把字符串的数字当做分隔符分隔成数组
console.log(str1.split(/[0-9]/)) */
console.log(str1.split(/[0-9]/,3))
// 后面的3是代表分隔成3个数组['a', 'b', 'c']