正则表达式
主要用于表单验证
处理复杂的字符串
正则表达式由两部分组成:
- 字符字面量:普通的字符(例如字母、数字)在正则表达式中表示它们自身。
- 元字符(元字符是具有特殊含义的字符):用于定义模式的特殊字符。常见的元字符包括 .、*、+、?、\ 等。
<script> //1. 获取页面元素 var txt = document.querySelector('#txt'); //2. 添加事件 txt.onblur = function(){ //1. 获取内容 let content = txt.value; //2. 创建正则不成功 (RegExp) // let re = /加薪/; var reCon = prompt('请输入您的规则:'); let re = new RegExp(reCon); //3. 验证内容是否符合规则 if(re.test(content)){ // txt.value = content.replace(re,'**'); close(); } } </script>
- {} [] ()
{} : 限制{}前面的一个字符或一组字符连续出现的次数 {m} : 限制{}前面的一个字符或一组字符连续出现 m 次 {m,} : 限制{}前面的一个字符或一组字符连续出现 m 至 无限 次 {m,n} : 限制{}前面的一个字符或一组字符连续出现 m 至 n 次 let str = 'ooo'; let re = /^o{3}$/; console.log(re.test(str)); let str = 'ooooooooooo'; let re = /^o{3,}$/; console.log(re.test(str)); let str = 'oooo'; let re = /^o{3,5}$/; console.log(re.test(str));
银行卡密码、邮政编码
let re = /^[0-9]{6}$/; let str = '666888'; console.log(re.test(str)); let re = /^[a-zA-Z]{1,}$/; let str = 'hello'; console.log(re.test(str));
中文
let re = /^[\u4e00-\u9fa5]{3,}$/; let str = '青山'; console.log(re.test(str)); let re = /^[a-zA-Z][a-zA-Z0-9_!@#-]{7,15}$/; let str = 'hello123456'; console.log(re.test(str)); let re = /^(中国){3}$/; let str = '中国中国中国'; console.log(re.test(str)); let re = /^(加薪)*$/; let str = '加薪加薪加薪加薪'; console.log(re.test(str)); let re = /^(加薪)+$/; let str = '加薪加薪加薪加薪'; console.log(re.test(str)); let re = /^(加薪)?$/; let str = ''; console.log(re.test(str)); let re = /^(加薪)/; let str = '加薪在吗?'; console.log(re.test(str)); let re = /^[^加薪]/; let str = '您好?加薪在吗?'; console.log(re.test(str)); let re = /加薪$/; let str = '老板,必须加加薪'; console.log(re.test(str)); let re = /^h.w$/; let str = 'h*w'; console.log(re.test(str)); let re = /^h.*w$/; let str = 'h*%$%^&*(O)LKJHGT^&*()OIKJNw'; console.log(re.test(str));
| 或
let re = /^(男|女)$/; let str = '男'; console.log(re.test(str));
\ 转义符
标志位: i : 不区分大小写 扩展名 .txt .js .c .html .class .mp4 index.js let re = /\.[a-z0-9]{1,5}$/i; let str = 'index.html'; console.log(re.test(str)); let re = /[a-z0-9\.\+\\]{1,5}$/i; let str = 'index.html'; console.log(re.test(str));
手机号
/^\d{11}$/ /^1(2|3|4|5|6|7|8|9)\d{9}$/ https:www.baidu.com com cn org edu net /^(https|http):\/\/\w+\.\w+\.[a-z]{2,3}$/i