JS中正则表达式学习记录

133 阅读1分钟

腾讯课堂学习地址

正则表达式.png

###实例

就是如果正则中出现了反斜杠 “\” ,在用构造函数时创建正则对象时,要转义,比如: re = new RegExp("\w+") // 这里的 \ 要转义,re = /\w+/ // 这样就不需要转义;

1、替换url中字符参数拼接

let url = "http://demo.bitech.cn/zjdcommunityoa.dingtalk/#/info?param=:approval/details?ProjectID=1876125382869043&IsEdit=1";
let reg = new RegExp("(^.+/#/)info\\?param=:approval/details\\?ProjectID=(.*)\&.+=(.*)");
if (reg.test(url)) {
    let replaceurl = url.replace(reg, `$1info/approval/detail/$2/$3`);
    console.log("replaceurl", replaceurl); 
    // http://demo.bitech.cn/zjdcommunityoa.dingtalk/#/info/approval/detail/1876125382869043/1
}

2、手机号判断

const CELLPHONE_REGEXP = /^1[3|4|5|6|7|8|9][0-9]{9}$/;

3、邮箱判断

/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/

4、千位分隔

let reg = new RegExp("\\d{1,3}(?=(\\d{3})+$)", "g");
console.log("result", "999889663215".replace(reg, "$&,"));

5、手机号敏感处理

"13262786327".replace(/(\d{3})\d{4}(\d{4})/, '$1****$2'

6、敏感词替换

"草,今天真是见了鬼了".replace(/cao|草|他妈的/g, (str) => {
                let result = "";
                for (let i = 0; i < str.length; i++) {
                    result += "*";
                }
                return result;
            })

7、密码校验

(1)

let pwdRegex=/^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,}$/;
let pwdRegex = new RegExp('^(?![0-9]+$)(?![a-z]+$)(?![A-Z]+$)(?!([^(0-9a-zA-Z)])+$).{6,}$');

正则表达式意思为 不能为纯数字,不能为纯小写字母,不能为纯大写字母,不能为纯特殊符号,至少8-16位。 细拆分为 (?![0-9]+$) 表示后面不能为纯数字

(?![a-z]+$) 表示后面不能为纯小写字母

(?![A-Z]+)表示后面不能为纯大写字母(?!([(0−9a−zA−Z)])+$)表示后面不能为纯大写字母

(?!([(0−9a−zA−Z)])+) 表示后面不能为除数字和字母外的纯特殊符号

^ 这个符号单独用表示“开头”,用在中括号的开头,表示“非”;

.{6,} 表示至少6位的任意字符

$ 表示“结尾”

(2)

let pwdRegex = new RegExp('(?=.*[0-9])(?=.*[a-zA-Z])(?=.*[^a-zA-Z0-9]).{6,10}')
pwdRegex.test(data.password) // true符合校验规则 false不符合校验规则

密码中必须包含大小写 字母、数字、特称字符,至少6个字符,最多10个字符;

正则表达式手册