美文网首页
Javascript正则速查表

Javascript正则速查表

作者: 杀个程序猿祭天 | 来源:发表于2018-03-31 06:46 被阅读9次

Javascript正则速查表

自己收集了一套针对工作中所需的正则表达式. 多适用于字符串处理、表单验证、日志数据分析等场合,实用高效, 将长期维护。

常用的正則方法示例

replace:

// 使用正则匹配中文字节, 将其替换为xx, 再获取字符串的长度就是完整的长度了.

function getLen(str) {

  return str.replace(/[^\x00-\xff]/g, 'xx').length;

}

test:

// 匹配是否符合邮件规则

var reg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;

// test返回一个布尔值, 表示是否匹配到制定字符串

var mail = reg.test('anran758@gmail.com')

if (mail) {

  // 如果邮件格式正确的话, 就可以做点啥了(雾

}

常见的表单验证

// 用户名正则,4到16位(字母,数字,下划线,减号)

var userNameReg = /^[a-zA-Z0-9_-]{4,16}$/;

// 密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符

var passwordReg = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;

// 匹配邮箱地址

var mailReg = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/;

// 中国六位数的邮政编码

var postalCode = /^\d{6}$/;

// 匹配15~18位身份证

var IDCard = /(^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$)|(^[1-9]\d{5}\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{2}$)/;

// 匹配18位的新版身份证

var IDCard_18 = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

网络相关

//ipv4地址正则

var IPReg = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;

// Reg Hex颜色正则

var pattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;

// URL正则

var urlReg= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;

// 匹配JSON格式

var reg = /^\w+\(({[^()]+})\)$/

匹配json字符串

var ret = response.data;

if (typeof ret === 'string') {

  var reg = /^\w+\(({[^()]+})\)$/

  var matches = ret.match(reg);

  if (matches) ret = JSON.parse(matches[1]);

}

res.json(ret);

联系方式

// 5-11位的腾讯qq号

var qqReg = /^[1-9][0-9]{4,11}$/;

// 微信号正则,6至20位,以字母开头,字母,数字,减号,下划线

var qqReg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;

// 国内常见

var phone = /^1[3|5|8|9]\d{9}$/;

// 固定电话

var telephone = /^(0[0-9]{2})\d{8}$|^(0[0-9]{3}(\d{7,8}))$/;

匹配特定数字

// 匹配正整数

var reg = /^[1-9]\d*$/;

// 匹配负整数

var reg = /^-[1-9]\d*$/;

// 匹配整数

var reg = /^-?[1-9]\d*$/;

// 匹配非负整数(正整数 + 0)

var reg = /^[1-9]\d*|0$/;

// 匹配非正整数(负整数 + 0)

var reg = /^-[1-9]\d*|0$/;

// 匹配正浮点数

var reg = /^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$/;

// 匹配负浮点数

var reg = /^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$/;

// 匹配浮点数

var reg = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/;

// 匹配非负浮点数(正浮点数 + 0)

var reg = /^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$/;

// 匹配非正浮点数(负浮点数 + 0)

var reg = /^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$/;

字符串相关

// 匹配由26个英文字母组成的字符串

var reg = /^[A-Za-z]+$/;

// 匹配由26个英文字母的大写组成的字符串

var reg = /^[A-Z]+$/;

// 匹配由26个英文字母的小写组成的字符串

var reg = /^[a-z]+$/;

// 匹配由数字和26个英文字母组成的字符串

var reg = /^[A-Za-z0-9]+$/;

// 匹配由数字、26个英文字母或者下;划线组成的字符串

var reg = /^\w+$/;

// 匹配空白行的正则表达式

var reg = /\n\s*\r/;

// 匹配首尾空白字符的正则表达式

var reg = /^\s*|\s*$/;

var rtrim = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;

// 匹配双字节字符(包括汉字在内, 一个双字节字符长度计2,ASCII字符计1)

var reg = /[^\x00-\xff]/g;

可视化正则表达式, 可以试试regexper, 让你看懂正则匹配的走向.

最后如果有哪些正则规则有问题的, 可以留言探讨一下呀~

相关文章

  • Javascript正则速查表

    Javascript正则速查表 自己收集了一套针对工作中所需的正则表达式. 多适用于字符串处理、表单验证、日志数据...

  • 常用正则表达式

    匹配汉字 匹配数字 参考资料 正则表达式速查表

  • 常用正则表达式

    匹配汉字 匹配数字 参考资料 正则表达式速查表

  • 正则速查表

    1. 字面量 模式说明字母、数字匹配字面量本身。比如 /f/,匹配字母 "f"\0匹配 NUL 字符\t匹配水平...

  • 正则表达式

    JavaScript 正则表达式分很多种类型,首先最常见的是js里面的正则,下面讨论JavaScript的正则表达...

  • 匹配

    测试地址|速查表 正则表达式是一种查找以及字符串替换操作。正则表达式在文本编辑器中广泛使用,比如正则表达式被用于:...

  • 原生js的基础方法等二

    JavaScript 正则表达式 正则表达式模式 调试 this JSON 字符串转换为 JavaScript 对...

  • 一些Python数据科学相关的速查表

    整理了一些Python数据科学相关的速查表。 Python基础 Python进阶 正则表达式 Numpy Scip...

  • day5-正则表达式学习(基于JavaScript)

    JavaScript正则表达式 什么是正则表达式

  • 正则验证

    注: 文章摘自 zxin - 博客园 正则速查表 校验数字的表达式 数字:^[0-9]*$ n位的数字:^\d{n...

网友评论

      本文标题:Javascript正则速查表

      本文链接:https://www.haomeiwen.com/subject/qznwcftx.html