一、正则表达式-------即reg(RegExp)
语法:const 变量名=/表达式/
const str='你好世界'
/1、定义规则
const reg=/你好/
2、是否匹配
console.log(reg.test(str))//str中存在正则表达式的内容,返回true
3.exec()
consloe.log(reg.exec(str))
text与exec方法区别
1)用于判断是否有符合规则的字符-------返回的是布尔值
2)exec用于检索(查找)符合规则的字符串,找到返回数组,否则返回null
二、元字符
1、元字符是有一些特殊含义的字符
- 边界符(表示位置,开头和结尾)
- 量词:设定某个模式出现的次数
// 量词*类似>=0次 console.log(/^哈*$/.test('哈哈'));//true console.log(/^哈*$/.test(''));//true console.log(/^哈*$/.test('哈'));//true console.log(/^小*$/.test('小小鸟'));//false // 量词+ 类似>=1次 console.log(/^哈+$/.test('哈哈'));//true console.log(/^哈+$/.test(''));//false console.log(/^哈+$/.test('哈'));//true console.log(/^小+$/.test('小小鸟'));//false // 量词? 1或者0 次 console.log(/^哈?$/.test('哈哈'));//false console.log(/^哈?$/.test(''));//true console.log(/^哈?$/.test('哈'));//true console.log(/^小?$/.test('小小鸟'));//false // 量词{n} 重复n次 console.log('--------------------'); console.log(/^哈{4}$/.test('哈哈'));//false console.log(/^哈{4}$/.test('哈哈哈'));//false console.log(/^哈{4}$/.test('哈'));//false console.log(/^哈{4}$/.test('哈哈哈哈'));//true
- 字符类
[abc]:只能有其中一个
[A-Z]:只能有其中一个
[a-zA-Z0-9]全包括
[^a-z]匹配除了26个小写字母之外的其他任何单个字符
精确匹配:
console.log(/^试$/.test('试试'));//false
console.log(/^试/.test('考试'));//false
console.log(/^试/.test('试试试'));//true
console.log(/试$/.test('考试'));//true
2、用户名验证案例
用 户名要求用户英文字母,数字,下划线或者短横线组成,并且用户名长度为6~16位
正则表达式:/^[a-zA-Z0-9-_ ]{6,16}$/
<script>
const reg = /^[a-zA-Z0-9-_]{6,16}$/
const input = document.querySelector('input')
const span = input.nextElementSibling
input.addEventListener('blur', function () { //失去焦点false,符合条件true
// console.log(reg.test(this.value));
if (reg.test(this.value)) {
span.innerHTML = '输入正确'
span.className = 'right'
} else {
span.innerHTML = '请输入6-16位的英文数字下划线'
span.className = 'error'
}
})
</script>
3、预定义
三、修饰符
replace替换
字符串.replace(/正则表达式/,'替换的文本')
<script>
console.log(/^java$/.test('java'));
console.log(/^java$/i.test('Java'));
console.log(/^java$/i.test('JAVA'));
const str = 'java好'
str.replace(/java/i, '前端')
const re = str.replace(/java/ig, '前端')
// 不但要区分大小写(i),还要全局替换(g)
console.log(re);//前端好
</script>