2022-05-13 正则表达式的常见示例

文章目录

        • 1.检测邮编
          • 格式要求
          • 正则代码
        • 2.检测文件名
          • 格式要求
          • 正则代码
        • 3.去除空格
          • 格式要求
          • 正则代码
        • 4.检测邮箱
          • 格式要求
          • 正则代码
        • 5.检测手机号
          • 格式要求
          • 正则代码
        • 6.检测身份证
          • 格式要求
          • 正则代码
        • 7.检测中文字符
          • 格式要求
          • 正则代码
        • 8.检测用户名
          • 格式要求
          • 正则代码
        • 9.替换手机号码
          • 格式要求
          • 正则代码
          • 知识点
        • 10.替换敏感字
          • 格式要求
          • 正则代码

1.检测邮编

格式要求

邮编是正好六位数的数字

正则代码
var youbian = '114514';
var reg1 = /^\d{6}$/g;
//若不加上^和$,则多于6个数字也会判断为true
//==>前后加上^和%可以起到指定判断字符长度的效果
console.log(reg1.test(youbian));

2.检测文件名

格式要求

文件名是以特定后缀名为结尾的字符,前面

正则代码
var doc = 'newfile.TXT';
var reg2 = /\.(txt|doc)$/ig;//'.'要写成'\.'(转义)
console.log(reg2.exec(doc));Array(2)

3.去除空格

格式要求

正则代码
var str = " hello world ";
var reg3 = /\s+/g; //空格至少出现一次,全局匹配:选定所有空格
var reg = /^\s+/; // 以空格开头,至少出现一次:选定开头空格
var reg = /\s+$/; // 空格至少出现一次,以空格结尾:选定结尾空格
console.log(str.length, str.replace(reg3, ''), (str.replace(reg3, '')).length); 
//13 helloworld 10

4.检测邮箱

格式要求
    用户名是长度为3~18的数字字母下划线,
    接一个@符号,
    邮箱种类是2~8位的小写英文字母
    接一个.符号,
    常见后缀是com,cn,net等
正则代码
var mail = '[email protected]';
var reg4 = /[a-zA-Z0-9]{3,18}@[a-z]{2,8}\.(net|com|cn)/g;
console.log(reg4.test(mail));

5.检测手机号

格式要求
手机号是以1开头的11位数数字
正则代码
var tel = '18823458888';
var reg5 = /^1\d{10}$/;;
console.log(reg5.test(tel));

6.检测身份证

格式要求
6位数出生地编码+8位数出生日期+4位数识别信息组成的18个数字,
最后一位可能是X(罗马数字10)
正则代码
var id = '22113320001231666X';
var reg6 = /^[12345]{1}\d{16}(\d|X){1}$/;//出生日期还可正则
console.log(reg6.test(id));

7.检测中文字符

格式要求

中文的编码一般都是使用utf-8编码,其范围是[\u4e00-\u9fa5]

正则代码
//检测姓名:至少两个汉字,最多四个汉字
var name = "山本五十六";
var reg7 = /^[\u4E00-\u9FA5]{2,4}$/;
console.log(reg7.test(name));

8.检测用户名

格式要求

用户名是由数字字母下划线组成的,且不能已下划线为开头

正则代码
var user = 'Big_pig888';
var reg8 = new RegExp(/^[a-zA-Z_]{1}\w{4,11}/);
console.log(reg8.test(user));

9.替换手机号码

格式要求

把中间四位手机号码替换成****

正则代码
var phone = '13388886543';
var reg9 = new RegExp(/(\d{3})\d{4}(\d{4})/);
// (\d{4})被称为一个原子,把11个数字分成三组,两个原子,那么$1可以引用匹配到的原子1,即(\d{3}})
//$2可以匹配到原子2,也就是后四位数字,再把中间部分替换成星号即可
console.log(phone.replace(reg9, "$1****$2"));
//拓展一下:分成三个原子$1$2$3,那么替换部分写成$1****$3即可,因在分组例后四位数字属于原子3
//若仍是$1****$2可以发现输出结果变成了133****8888
//总结:$n一般是在字符串的替换函数replace中使用到, 替换满足正则条件的字符串。
知识点

1.原子:正则中()括起来的部分可以称为一个原子
2.$n:一般是在replace()中,用于替换满足正则条件的字符串

10.替换敏感字

格式要求

查找表单输入的内容是否包含敏感字,若有则替换成*号

正则代码
<form action="">
    <input type="text" placeholder="一口吃不成一个胖子" id="content" value="" /><br/>
    <input type="button" value="检测" id="check" /><br/>
form>
<script>
    var chk = document.getElementById('check');
    chk.onclick = function() {
        var con = document.getElementById('content').value;
        var reg10 = /胖子/g;
        console.log(con.replace(reg, '**'));
    }
script>

你可能感兴趣的:(项目与应用,js)