JavaScript 常用的正则表达式

🌙
手机阅读
本文目录结构

是否为有效数字

规则分析

  • 可能出现+/-, 也可能不出现
    • [+-]?
  • 一位数的时候,0-9 可以,多位的时候不能为 0
    • (\d|([1-9]\d+))
  • 小数部分可能有,可能没有,一旦有,后面必须有小数点加数字;
    • (\.\d+)?
let reg = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;
console.log(reg.test(1));
console.log(reg.test(-1));
console.log(reg.test(-1.0));

验证用户密码

规则分析:

  • 数字,字母,下划线
  • 6~16 位

普通 JavaScript 的写法

function checkPass(val) {
    // 长度
    if (val.length < 6 || val.length > 16) {
        return false;
    }

    let area = ['a', 'x', 'i', 'h', 'e', 'c', 'o', 'm', '_'];
    let array = val.split('');
    for (let index = 0; index < array.length; index++) {
        const element = array[index];
        console.log('element', element);
        if (!area.includes(element)) {
            return false;
        }
    }
    return true;
}
console.log(checkPass(''));//false
console.log(checkPass('axihe_com'));//true
console.log(checkPass('axihe.com'));//false
console.log(checkPass('123dd'));//false

正则的写法

let reg = /^\w{6,16}$/;
console.log(reg.test(''));//false
console.log(reg.test('axihe_com'));//true
console.log(reg.test('axihe.com'));//false
console.log(reg.test('123dd'));//false

验证真实姓名

规则:

  • 汉字,使用 Unicode 码 /[\u4e00-\u9fa5]/
  • 名字长度,2-4 位
let reg = /[\u4e00-\u9fa5]{2,4}/;
console.log(reg.test('朱安邦'));

验证邮箱的

规则:

  • 核心:邮箱的名字由数字,字母,下划线,-,.几部分组成,但是-.不能连续出现,也不能作为开始
  • 开头是数字,字母,下划线(1 到多位)
  • 还可以是-数字字母下划线 或者 .数字字母下划线, 整体零次到多次

片段:anbang@www.axihe.com

  • 前面是数字字母下划线中线.
    • \w+((\.\w+)|(-\w+))*
  • @后面紧跟着一至多个数字和字母@www
    • @[A-Za-z0-9]+
  • 匹配.a-b.axihe,(在域名内,-属于合法的,可以无限anbang@an-bang.b.c.axihe.com
    • ((\.|-)[A-Za-z0-9]+)*
  • 匹配@axihe.com最后的根域名.com
    • *\.[A-Za-z0-9]+

最终的正则如下

let reg = /^\w+((\.\w+)|(-\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

AXIHE / 精选资源

浏览全部教程

面试题

学习网站

前端培训
自己甄别

前端书籍

关于朱安邦

我叫 朱安邦,阿西河的站长,在杭州。

以前是一名平面设计师,后来开始接接触前端开发,主要研究前端技术中的JS方向。

业余时间我喜欢分享和交流自己的技术,欢迎大家关注我的 Bilibili

关注我: Github / 知乎

于2021年离开前端领域,目前重心放在研究区块链上面了

我叫朱安邦,阿西河的站长

目前在杭州从事区块链周边的开发工作,机械专业,以前从事平面设计工作。

2014年底脱产在老家自学6个月的前端技术,自学期间几乎从未出过家门,最终找到了满意的前端工作。更多>

于2021年离开前端领域,目前从事区块链方面工作了