资讯专栏INFORMATION COLUMN

前端常用的正则表达式

A Loity / 768人阅读

摘要:密码强度正则,最少位,包括至少个大写字母,个小写字母,个数字,个特殊字符输出校验中文但是但是但是包含中文正则但是由数字个英文字母或下划线组成的字符串身份证号正则身份证号位正则输出校验日期格式的日期校验,已考虑平闰年。

替换

通过一些例子来学习正则表达式摘录,js正则函数match、exec、test、search、replace、split

去除首尾的
//去除首尾的‘/’
input = input.replace(/^/*|/*$/g,"");
javascript:; 、javascript:void(0)
"javascript:;".match(/^(javascripts*:|#)/);
//["javascript:", "javascript:", index: 0, input: "javascript:;"]
匹配
var str = "access_token=dcb90862-29fb-4b03-93ff-5f0a8f546250; refresh_token=702f4815-a0ff-456c-82ce-24e4d7d619e6; account_uid=1361177947320160506170322436";
str.match(/account_uid=([^=]+(;)|(.*))/ig);
匹配一些字符
var str = "asdf html-webpack-plugin for "index/index.html" asdfasdf";
str.match(/html-webpack-plugin for "(.*)"/ig);
console.log(RegExp.$1) //=>index/index.html
关键字符替换
"css/[hash:8].index-index.css".replace(/[(?:(w+):)?(contenthash|hash)(?::([a-z]+d*))?(?::(d+))?]/ig,"(.*)");
//=> css/(.*).index-index.css
替换参数中的值
var str  = "";
str.replace(/]*manifest="([^"]*)"[^>]*>/,function(word){
   return word.replace(/manifest="([^"]*)"/,"manifest=""+url+""");
}).replace(/]*>)/,function(word){
    if(word.indexOf("manifest")) return word;
    return word.replace("
//替换成=> 
匹配括号内容
"max_length(12)".match(/^(.+?)((.+))$/)
// ["max_length(12)", "max_length", "12", index: 0, input: "max_length(12)"]
调换
var name = "Doe, John"; 
name.replace(/(w+)s*, s*(w+)/, "$2 $1"); 
//=> "John Doe"
字符串截取
var str = "asfdf === sdfaf ##"
str.match(/[^===]+(?=[===])/g) // 截取 ===之前的内容

str.replace(/
/g,"")  // 替换字符串中的 
 换行字符
验证 小数点后几位验证
// 精确到1位小数
/^[1-9][0-9]*$|^[1-9][0-9]*.[0-9]$|^0.[0-9]$/.test(1.2);

// 精确到2位小数
/^[0-9]+(.[0-9]{2})?$/.test(1.221);
密码强度正则
// 必须是包含大小写字母和数字的组合,不能使用特殊字符,长度在8-10之间。
/^(?=.*d)(?=.*[a-z])(?=.*[A-Z]).{8,10}$/.test("weeeeeeeW2");
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
/^.*(?=.{6,})(?=.*d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/.test("diaoD123#");
//输出 true
校验中文
/^[u4e00-u9fa5]{0,}$/.test("但是d"); //false
/^[u4e00-u9fa5]{0,}$/.test("但是"); //true
/^[u4e00-u9fa5]{0,}$/.test("但是"); //true
包含中文正则
/[u4E00-u9FA5]/.test("但是d") //true
由数字、26个英文字母或下划线组成的字符串
/^w+$/.test("ds2_@#"); // false
身份证号正则
//身份证号(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]$/.test("42112319870115371X");
//输出 false
校验日期

“yyyy-mm-dd“ 格式的日期校验,已考虑平闰年。

//日期正则,简单判定,未做月份及日期的判定
var dP1 = /^d{4}(-)d{1,2}1d{1,2}$/;
//输出 true
console.log(dP1.test("2017-05-11"));
//输出 true
console.log(dP1.test("2017-15-11"));
//日期正则,复杂判定
var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
//输出 true
console.log(dP2.test("2017-02-11"));
//输出 false
console.log(dP2.test("2017-15-11"));
//输出 false
console.log(dP2.test("2017-02-29"));
// true
校验文件后缀
  var strRegex = "(.jpg|.gif|.txt)";
  var re=new RegExp(strRegex);
  if (re.test(str)){
    
  }
/(.jpg|.gif)+(?|#|$)/.test("a/b/c.jpgsss"); //=> false
/(.jpg|.gif)+(?|#|$)/.test("a/b/c.jpg?"); //=> true
用户名正则
//用户名正则,4到16位(字母,数字,下划线,减号)
/^[a-zA-Z0-9_-]{4,16}$/.test("diaodiao");
//输出 true
整数正则
/^d+$/.test("42");    //正整数正则  -> 输出 true
/^-d+$/.test("-42");  //负整数正则  -> 输出 true
/^-?d+$/.test("-42"); //整数正则  -> 输出 true

/^[0-9]+$/.test(25.5455) //正整数正则  -> 输出 false
// 浮点数
/^(?:[-+])?(?:[0-9]+)?(?:.[0-9]*)?(?:[eE][+-]?(?:[0-9]+))?$/.test(0.2)
数字正则

可以是整数也可以是浮点数

/^d*.?d+$/.test("42.2");     //正数正则  -> 输出 true
/^-d*.?d+$/.test("-42.2");   //负数正则 -> 输出 true
/^-?d*.?d+$/.test("-42.2");  //数字正则 -> 输出 true
Email正则
//Email正则
/^([A-Za-z0-9_-.])+@([A-Za-z0-9_-.])+.([A-Za-z]{2,4})$/.test("wowohoo@qq.com");
//输出 true

// 1.邮箱以a-z、A-Z、0-9开头,最小长度为1.
// 2.如果左侧部分包含-、_、.则这些特殊符号的前面必须包一位数字或字母。
// 3.@符号是必填项
// 4.右则部分可分为两部分,第一部分为邮件提供商域名地址,第二部分为域名后缀,现已知的最短为2位。
//   最长的为6为。
// 5.邮件提供商域可以包含特殊字符-、_、.
/^[a-z0-9]+([._-]*[a-z0-9])*@([a-z0-9]+[-a-z0-9]*[a-z0-9]+.){1,63}[a-z0-9]+$/.test("wowohoo@qq.com");
传真号码
// 国家代码(2到3位)-区号(2到3位)-电话号码(7到8位)-分机号(3位)
/^(([0+]d{2,3}-)?(0d{2,3})-)(d{7,8})(-(d{3,}))?$/.test("021-5055455")
手机号码正则
//手机号正则
/^1[34578]d{9}$/.test("13611778887");
//输出 true

//* 13段:130、131、132、133、134、135、136、137、138、139
//* 14段:145、147
//* 15段:150、151、152、153、155、156、157、158、159
//* 17段:170、176、177、178
//* 18段:180、181、182、183、184、185、186、187、188、189
//* 国际码 如:中国(+86)
/^((+?[0-9]{1,4})|((+86)))?(13[0-9]|14[57]|15[012356789]|17[03678]|18[0-9])d{8}$/.test("13611778887");
URL正则
//URL正则
/^((https?|ftp|file)://)?([da-z.-]+).([a-z.]{2,6})([/w .-]*)*/?$/.test("http://wangchujiang.com");
//输出 true

//获取url中域名、协议正则 "http://xxx.xx/xxx","https://xxx.xx/xxx","//xxx.xx/xxx"
/^(http(?:|s):)*//([^/]+)/.test("http://www.baidu.com");

/^((http|https)://(w+:{0,1}w*@)?(S+)|)(:[0-9]+)?(/|/([w#!:.?+=&%@!-/]))?$/.test("https://www.baidu.com/s?wd=@#%$^&%$#")

// 必须有协议 
/^[a-zA-Z]+:///.test("http://www.baidu.com");
IPv4地址正则
//ipv4地址正则
/^(?:(?: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]?)$/.test("192.168.130.199");
//输出 true
十六进制颜色正则
//RGB Hex颜色正则
/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/.test("#b8b8b8");
//输出 true
QQ号码正则
//QQ号正则,5至11位
/^[1-9][0-9]{4,10}$/.test("398188661");//输出 true
微信号正则
//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
/^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/.test("jslite"); //输出 true
车牌号正则
//车牌号正则
/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/.test("沪B99116") //输出 true
颜色值校验
// HEX 颜色正则
/^#?([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test("#ccb2b2")

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/87399.html

相关文章

  • 如何判断用户浏览器以及一些前端常用正则表单验证

    摘要:前言在我们做用户授权登录微信授权,以及根据对应浏览器做对应的操作的时候,经常会遇到需要判断用户使用的浏览器的需求,以及在需要用户输入信息的时候,有需要验证的一些正则。 前言 在我们做用户授权登录(微信,qq授权),以及根据对应浏览器做对应的操作的时候,经常会遇到需要判断用户使用的浏览器的需求,以及在需要用户输入信息的时候,有需要验证的一些正则。如果喜欢的话可以点波赞/关注,支持一下,希...

    JiaXinYi 评论0 收藏0
  • 正则达式

    摘要:最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。学习目标了解正则表达式语法在中使用正则表达式在中使 JS高级技巧 本篇是看的《JS高级程序设计》第23章《高级技巧》做的读书分享。本篇按照书里的思路根据自己的理解和经验,进行扩展延伸,同时指出书里的一些问题。将会讨论安全的类型检测、惰性载入函数、冻结对象、定时器等话题。1. 安全的类型检测...

    yibinnn 评论0 收藏0
  • 前端常用正则达式

    摘要:匹配前面的子表达式零次或多次。例如就是一个比更简略的表达式。正则表达式中可以使用编码。如果之前至少有个获得子表达式,则为向后引用。 前端常用的正则表达式 通过一些例子来学习正则表达式摘录,js正则函数match、exec、test、search、replace、split //去除首尾的‘/’ input = input.replace(/^/*|/*$/g,); j...

    desdik 评论0 收藏0
  • 正则达式

    摘要:本文内容共正则表达式火拼系列正则表达式回溯法原理学习正则表达式,是需要懂点儿匹配原理的。正则表达式迷你书问世了让帮你生成和解析参数字符串最全正则表达式总结验证号手机号中文邮编身份证地址等是正则表达式的缩写,作用是对字符串执行模式匹配。 JS 的正则表达式 正则表达式 一种几乎可以在所有的程序设计语言里和所有的计算机平台上使用的文字处理工具。它可以用来查找特定的信息(搜索),也可以用来查...

    bang590 评论0 收藏0
  • 正则系列——JavaScript正则达式入门心得

    摘要:对前端来说,使用的场景不多,但是像微信端的对话系统的表情包,就使用到了一个特定的规则。我是一个前端,工作年了,现在失业,想进入腾讯工作,这是我的联系方式这个正则虽 我发现有个别字符被这个编辑器给刷掉了,但是灰色区域显示正常,以灰色区域代码为准 什么玩意? 在我刚开始学习编程的时候,就听过正则了,也听说正则很牛逼,懂正则的更牛逼。但是苦于没有人指点,也没有使用正则的场景,自己看教程又懵逼...

    DevWiki 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<