正则表达式
正则表达式就是用于匹配字符串中字符组合
特点:
- 灵活性、逻辑性和功能性非常的强。
- 可以迅速地用极简单的方式达到字符串的复杂控制。
正则表达式的创建:
通过调用RegExp对象的构造函数创建
var exp = new RegExp(/123/)
console.log(exp);
利用字面量创建 正则表达式
var exp = /123/
console.log(exp);
Test()用于检测字符串是否符合该规则
console.log(exp.test(123));
console.log(exp.test('abc'));
边界符
^表示以谁开始
$表示以谁结束
// 以a开头是true,不是则是false
var reg1 = /^abc/;
console.log(reg1.test('babc'));
// 精确匹配 要求必须是 abc字符串才符合规范
var reg2 = /^abc$/;
console.log(reg2.test('abc'));
// []表示有一系列字符可供选择,只要匹配其中一个就可以
var reg3 = /[abc]/;
console.log(reg3.test('qwea'));
//26个英文字母任何一个字母返回 true - 表示的是a 到z 的范围
var reg4 = /^[a-z]$/
console.log(reg4.test('a'));
// a-z,A-Z,0-9都可以
var reg5 = /^[a-zA-Z0-9]$/;
console.log(reg5.test('2'));
//取反 方括号内部加上 ^ 表示取反,只要包含方括号内的字符,都返回 false 。
var reg2 = /^[^a-zA-Z0-9]$/;
console.log(reg2.test('-'));
量词符
*重复0次或更多次
+重复1次或更多次
? 重复0次或1次
{ n } 重复n次
{ n,} 重复n次或更多次
{ n, m } 重复n到m次
判断用户输入是否合法
var reg = /^[a-zA-Z0-9_-]{6,16}$/;
var inp = document.querySelector('.inp')
var spa = document.querySelector('.spa')
inp.onblur = function () {
if (reg.test(this.value)) {
console.log('正确的');
spa.innerHTML = '输入正确'
}
else {
console.log('错误的');
spa.innerHTML = '输入错误'
}
}
预定义类
replace() 方法实现替换字符串操作
全部替换:g
忽略大小写:i
// replace() 方法可以实现替换字符串操作
var str = 'andy和red';
var newStr = str.replace('andy', 'baby');
console.log(newStr)
//全部替换
var str = 'abcabc'
var nStr = str.replace(/a/, '哈哈')
console.log(nStr)
//全部替换g
var nStr = str.replace(/a/g, '哈哈')
console.log(nStr)
//忽略大小写gi
var str2 = 'AatAbcAba';
var newStr = str2.replace(/a/i, '哈哈')
console.log(newStr);
敏感词汇过滤
var tex=document.querySelector('.tex')
var btn=document.querySelector('.btn')
var box=document.querySelector('.box')
btn.onclick=function(){
tex.value=tex.value.replace(/gay|激情/g,'**')
}