#正则表达式
// 利用RegExp对象来创建正则表达式
var regexp = new RegExp(/abc/) // 实例化出来了一个正则对象
// 字面量方式直接创建
var rg = /abc/;
// 怎么使用正则对象
// .test()测试的意思
// 在.test后面的括号里传递一个参数
// 可以测试里面有没有这个参数
// 如果有返回true如果没有返回false
// 这个是正则表达式上面自带的
// test进行搜索 搜索abc 里面是否包含(abc)
console.log(regexp.test('abc'))
console.log(regexp.test('ababbc'))
console.log(regexp.test('aabcaa'))
console.log(rg.test('abc'))
#边界符
// var rg = /abc/;
// console.log(rg.test("abc")); // true
// console.log(rg.test("abcd")); // true
// console.log(rg.test("adbcd")); // false
// console.log(rg.test("aabcd")); // true
// 边界符 ^:以什么什么为开头
// var reg = /^abc/ // 以a开头后面紧跟着bc 或者以abc开头
// console.log(reg.test("abc")); // true
// console.log(reg.test("abcd")); // true
// console.log(reg.test("dabc")); // false
// console.log(reg.test("aabc")); // false
// 边界符 $:以什么什么结尾
var reg1 = /abc$/ // 以c结尾 前面紧跟着b和a
console.log(reg1.test('abcd')) // false
console.log(reg1.test("abc")) // true
console.log(reg1.test('abcc')) // false
#字符类
// var reg = /abc/ []
// var reg = /[abc]/ // 代表着只要包含a 或者包含b 或者包含c 都会返回true
// console.log(reg.test("hgjhgja")) // true
// console.log(reg.test("b")) // true
// console.log(reg.test("baby")) // true
// console.log(reg.test("angel")) // true
// 结合
// var reg1 = /^[abc]$/; //只有a 或者b 或者c
// console.log(reg1.test("a")) // ture 只能以什么开头就以什么结尾
// console.log(reg1.test("aa")) // false
// console.log(reg1.test("bb")) // false
// console.log(reg1.test("b")) // ture
// console.log(reg1.test("c")) // ture
// console.log(reg1.test("abc")) // false
// 只能是26个英文字母, 并且是小写的
// var reg1 = /^[a-z]$/ // 只能是26个英文字母中某一个字母,并且是小写的,才能返回true
// console.log(reg1.test("a")) // true
// console.log(reg1.test("aa")) // false
// console.log(reg1.test("1")) // false
// var reg2 = /^[a-zA-Z0-9_-]$/ // 26个大小写英文字母和数字_-的某一个都会返回true
// console.log(reg2.test("-")) // true
// console.log(reg2.test("!")) // false
// console.log(reg2.test(5)) // true
// console.log(reg2.test("a")) // true
// console.log(reg2.test("A")) // true
// 需要特别注意 如果^符号写到[]里面 就是取反的意思 已经不是在以什么什么开头的意思
var reg2 = /^[^a-zA-Z0-9_-]$/ // 如果在[]里面写上^那就是取反
console.log(reg2.test("-")) // false
console.log(reg2.test("!")) // true
console.log(reg2.test(5)) // false
console.log(reg2.test("a")) // false
console.log(reg2.test("A")) // false
#量词
// var reg = /^a$/ // 只能是一个字符a 以a开头以a结尾
// console.log(reg.test('a')) // true
// console.log(reg.test('aa')) // false
// 学习量词
// *符号代表那个词可以出现0次或者出现多次
// * >= 0 可以出现0次或者出现多次
// var reg1 = /^a*$/
// console.log(reg1.test("")) // a可以出现0次所以为true
// console.log(reg1.test("aaaaaaa")) // true
// console.log(reg1.test("aabc")) // false
// +符号代表那个词必须出现1次或者多次
// + >= 1
// var reg2 = /^a+$/
// console.log(reg2.test("")) // false 这个符号最少出现一次
// console.log(reg2.test("a")) // true
// console.log(reg2.test("aaaaa")) // true
// console.log(reg2.test("aaabc")) // false
// ?符号代表那个词有0次或者1次
// 0 <= ? <= 1
// var reg3 = /^a?$/
// console.log(reg3.test("")) // true
// console.log(reg3.test("a")) // true
// console.log(reg3.test("aaaa")) // false
// {数值}符号里面的数值代表那个词必须重复几次
// var reg4 = /^a{3}$/
// console.log(reg4.test("")) // false
// console.log(reg4.test("aa")) // false
// console.log(reg4.test("aaa")) // true
// console.log(reg4.test("aaaa")) // false
// {数值,}符号里面在数值后面加个逗号,代表这个词可以大于等于这个数值
// var reg5 = /^a{3,}$/
// console.log(reg5.test("aaa")) // true
// console.log(reg5.test("aaaa")) // true
// console.log(reg5.test("aaaaa")) // true
// console.log(reg5.test("aa")) // false
// {数值,数值}符号里面可以有两个数值
// 第一个数值代表这个词的数量必须大于此数值
// 第二个数值代表这个词的数量必须小于此数值
var reg6 = /^a{3,8}$/
console.log(reg6.test("aa")) // false
console.log(reg6.test("")) // false
console.log(reg6.test("aaa")) // true
console.log(reg6.test("aaaaaa")) // true
console.log(reg6.test("aaaaaaaaa")) // false
console.log(reg6.test("aaaaaaaa")) // true
#括号
// [] {} ()
// ()符号就是优先执行的意思
var reg = /^abc{3}$/
// 想让abc重复三次
console.log(reg.test("abcabcabc")) // false
console.log(reg.test("abccc")) // true
var reg = /^(abc){3}$/
console.log(reg.test("abcabcabc")) // true
console.log(reg.test("abccc")) // false
#字符串搜索并且替换
var message = document.querySelector("#message")
var btn = document.querySelector("button")
var div = document.querySelector("div")
btn.onclick = function(){
// 点击时替换textarea中的敏感字
// | 或者
// g:global 全局
div.innerText = message.value.replace(/死|擦/g,"*")}