Js高级-正则表达式
一、正则表达式
1、目的:表单的验证
2、定义:就是用事先定义好的:些特定字符、 及这些特定字符的组合,组成.个“ 规则字符串”
3、特定字符:元字符 限定符 其他字符
4、作用:匹配 替换 提取
5、创建正则对象
二、元字符
// 1、\d 匹配至少有一个数字
var reg = /\d/
console.log(typeof reg);
console.log(reg instanceof Object);
console.log(reg.constructor);
document.getElementById('inp').onblur = function () {
var reg = /\d/;
console.log(reg.test(this.value));
if (reg.test(this.value)) {
console.log('成功');
}
}
// 2、\D 匹配至少任意一个非数字的字符
document.getElementById('inp').onblur = function () {
var reg = new RegExp(/\D/)
console.log(reg.test(this.value));
}
// 3、\w 匹配至少一个字母或数字或下划线
var str = '哈哈'
var reg = new RegExp(/\w/)
console.log(reg.test(str));
// 4、\W 匹配至少有一个不是字母,数字,下划线
var str = '1'
var reg = new RegExp(/\W/)
console.log(reg.test(str));
// 5、\s 匹配至少任意的空白符
var str = '111'
var reg = /\s/
console.log(reg.test(str));
// 6、\S 匹配至少一个不是空白符的字符
var str = '111'
var reg = /\S/
console.log(reg.test(str));
// 7、. 匹配至少有一个非换行符
var str = '\n'
var reg = /./
console.log(reg.test(str));
// 8、^ 表示匹配行首的文本(以谁开始)^\d
var str = '222222'
var reg = /^\d/
console.log(reg.test(str));
// 9、$ 表示匹配行尾的文本(以谁结束)\d$
var str = '1'
var reg = /^\d$/
console.log(reg.test(str));
三、限定符
// 1、 重复零次或更多次\d* /^ab*$/:表示一个字符串有一个a后面跟着零个或若干个b。('a','ab','abbbb',……)
var str = 'abbbbbb'
var reg = /^ab*$/
console.log(reg.test(str));
// 2、+ 重复一次或更多次\d+ /ab+/:表示一个字符串有一个a后面跟着至少一个b或者更多;
var str = '111'
var reg = /1+/
console.log(reg.test(str));
// 匹配全数字
var reg = /^\d+$/
console.log(reg.test(str));
// 3、? 重复零次或一次 /^ab?$/:表示一个字符串有一个a后面跟着零个或者一个b;
var str = 'ab'
var reg = /^ab?$/
console.log(reg.test(str));
// 4、{n} 至少重复n次
var str = '333'
var reg = /3{3}/
console.log(reg.test(str));
// 5、{n,m} 重复n到m次
var str = '2222'
var reg = /2{2,5}/
console.log(reg.test(str));
四、其他符号
// 1、[] 字符串用括号括起来,表示匹配其中的任意字符,相当于或的意思[0-9]
var str = '11哈哈'
var reg = /[哈哈]/
console.log(reg.test(str));
// 2、\ 转义符:\的用法 \主要是用在正则表达式中的特殊符号转换成它本身的意思
var str = '.'
var reg = /\./
console.log(reg.test(str));
// 3、| 或者,选择两者中的一个。注意|将左右两边分成两部分,而不管左右两边有多长多乱
var str = 'abnbAaAAaBBD'
var reg = /[a-z]|[A-Z]/
console.log(reg.test(str));
// 匹配全数字
var reg = /^\d+$/
// 匹配小写字母
var reg = /^[a-z]+$/
// 匹配大写字母 小写字母 数字
var reg = /^[a-zA-Z0-9]+$/
// 匹配银行卡
var reg = /^[1-9]\d{9,29}$/
var reg = /^(?:[\u4e00-\u9fa5·]{2,16})$/
1、字面量创建
var 变量 = /特定字符or组合/
2、构造函数创建
var 变量 = new RegExp(/特定字符or组合/)
五、用法:
正则对象 . test(字符串) 返回boolean类型 true匹配成功 false不成功
正则的提取和替换
math( ):方法可在字符串内检索指定的值,或找到一个或多个正则表达式的匹配。返回数组
g:全局匹配
i:忽略大小写
gi:全局匹配 忽略大小写
replace() 替换
replaceAll() 全部替换