常用正则速查

不定时整理一下项目中常用到的一些正则判断,跟大家分享的同时,也方便自己查找。

1. 密码强弱判断(8-24位无符号版)

// 强
/^(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])[a-zA-Z0-9]{8,24}$/

// 中
/^(?=.*[a-z])(?=.*[A-Z])|(?=.*[A-Z])(?=.*[0-9])|(?=.*[a-z])(?=.*[0-9])[a-zA-Z0-9]{8,24}$/

// 弱
/^(?=.*[a-z])|(?=.*[A-Z])|(?=.*[0-9])[a-zA-Z0-9]{8,24}$/

2. 匹配特殊字符

/[`~!@#$^&*()=|{}':;',\\\[\]\.<>\/?~!@#¥……&*()——|{}【】';:""'。,、?\s]/g

3. 匹配手机号、邮箱

// 手机号
Number(value.slice(0, 1)) === 1 && /^([0-9]){1,11}$/.test(value) && value.length === 11
// 邮箱
value.slice(0, 1) !== "-" && /^([a-zA-Z0-9]?)([a-zA-Z0-9\-])+@([a-zA-Z0-9])+\.[a-zA-Z]{2,4}$/.test(value)
  • 案例:登录框判断邮箱或手机号
if ((Number(value.slice(0, 1)) === 1) && /^([0-9]){1,11}$/.test(value) && value.length === 11) {
    this.loginType = "phone";
    this.userRight = true;
} else if (value.slice(0, 1) !== "-" && /^([a-zA-Z0-9]?)([a-zA-Z0-9\-])+@([a-zA-Z0-9])+\.[a-zA-Z]{2,4}$/.test(value)) {
    this.loginType = "email";
    this.userRight = true;
}

4. 匹配价格框

<input type="text" id="price-min" min="0"> -
<input type="text" id="price-max" min="0">
  • 在输入框的监听函数中使用(暂未做节流处理)
// 获取最新输入的值
let lastStr = e.target.value[e.target.value.length - 1];

if (/^0/.test(e.target.value) || e.originalEvent.inputType !== "deleteContentBackward" && !/\d/.test(lastStr)){
    setTimeout( _ => e.target.value = e.target.value.replace(lastStr, ""), 150 );
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容